Mój folder parent
ma następującą zawartość:
A.Folder B.Folder C.File
Zawiera zarówno foldery, jak i pliki. B.Folder
jest nowszy. Teraz chcę tylko B.Folder
, jak mogę to osiągnąć? Próbowałem tego,
ls -ltr ./parent | grep '^d' | tail -1
ale daje mi to drwxrwxr-x 2 user user 4096 Jun 13 10:53 B.Folder
, ale potrzebuję tylko nazwy B.Folder
.
shell
files
ls
timestamps
Daniel
źródło
źródło
ls -ltr ./parent | grep '^d' | tail -1| awk '{print $NF}'
Odpowiedzi:
Spróbuj tego:
-t
opcjels
sortuj według czasu modyfikacji, najpierw najnowsze.Jeśli chcesz usunąć
/
:źródło
/
?ls -td -- ./parent | head -n 1
to, że nie daje mi poprawnych wyników, czy muszę używać podpowłoki zacd ./parent
każdym razem i wykonywać to polecenie? Jakieś rozwiązanie?Różnica w stosunku do rozwiązania Herson za to po ukośnik
*
, co sprawia, że powłoka ignorować wszystkie pliki non-dir. Różni się od Gnouc , zadziała, jeśli jesteś w innym folderze.Cut musi znać liczbę katalogów nadrzędnych (2), aby usunąć końcowe „/”. Jeśli tego nie masz, użyj
źródło
Obowiązkowa odpowiedź zsh:
Znaki w nawiasach to kwalifikatory globalne :
/
do dopasowywania tylko katalogów,om
do sortowania dopasowań według wieku i[1]
do zachowania tylko pierwszego (tj. Najnowszego) dopasowania. Dodaj,N
jeśli chcesz otrzymać pustą tablicę (zwykle dostajesz tablicę 1-elementy), jeśli nie ma podkataloguparent
.Alternatywnie, zakładając, że
parent
nie zawiera żadnego znaku globowania powłoki:Jeśli nie masz Zsh, ale masz najnowsze narzędzia GNU (tj. Niewbudowany Linux lub Cygwin), możesz użyć
find
, ale jest to uciążliwe. Oto jeden ze sposobów:Istnieje proste rozwiązanie
ls
, które działa, o ile nazwa katalogu nie zawiera znaków nowej linii lub (w niektórych systemach) znaków niedrukowalnych:źródło
Możesz to zrobić:
źródło
Następujące polecenie wykona zadanie nawet w przypadku nazwy katalogu zawierającej spację:
Zaktualizowane wyjaśnienie elementów w backticks jest:
.
- bieżący katalog (możesz tutaj podać ścieżkę bezwzględną)-mindepth/-maxdepth
- ogranicz polecenie find tylko do bezpośrednich potomków bieżącego katalogu-type d
- tylko katalogi-exec stat ..
- wyświetla zmodyfikowany czas i nazwę katalogu ze znalezionego oddzielone tabulatorem (a nie spacją)sort -n -r |head -1 | cut -f2
- data porządkuje katalog i wyświetla całą nazwę ostatnio zmodyfikowanej (nawet jeśli zawiera trochę miejsca jako domyślną kartę ogranicznika cięcia)źródło