Mam katalog: /home/user/
Jak mogę wyświetlić listę wszystkich plików w tym katalogu (łącznie z tymi w podkatalogach) i uporządkować je według daty ostatniej modyfikacji?
Możesz użyć:
ls -Rt
gdzie -R
oznacza cyklicznie (zawiera podkatalogi) i -t
oznacza „sortowanie według daty ostatniej modyfikacji”.
Aby zobaczyć listę plików posortowanych według daty modyfikacji, użyj:
ls -l -Rt
Aby to osiągnąć, można również utworzyć alias:
alias lt='ls -lht'
lt
Gdzie -h
daje bardziej czytelny wynik.
ls -lrt[RhA]
.-r
odwraca porządek, pozostawiając ostatnio edytowany materiał na dole listy ...-ila
daje prawie wszystkie potrzebne informacje.$ ls -ilaRt
ll -Rt
było dla mnie idealnym rozwiązaniem, ponieważ potrzebowałem zobaczyć pliki według daty ostatniej modyfikacji. Może to być pomocne dla innych.ll
nie istnieje i nie jest poleceniem. Jest to głównie alias w powłoce bash, ale nie jest zdefiniowany w większości / some /? dystrybucje Linuksa. Niektórzy definiują go jakoalias ll='ls -l'
plik /etc/bash.bashrc lub /etc/.bashrc. Dlatego może nie działać i może nie istnieć w systemie PO. Użyjls -l -Rt
przynajmniej, tak jakls
jest to standardowe polecenie zdefiniowane przez posix. Lub sprecyzuj, o co ci chodziłoalias ll='ls -l'; ll -Rt
.Jeśli chcesz mieć listę główną, na której wszystkie pliki są posortowane razem według daty modyfikacji, pokazując katalog, w którym się znajdują, ale nie pogrupowane według katalogu , możesz użyć tego:
Wynik wygląda bardzo podobnie
ls -l
:Mac OS X
Dla tych z Was, którzy używają Mac OS X, opcja -printf nie jest dostępna w narzędziu BSD find (pojawi się ten błąd :)
find: -printf: unknown primary or operator
. Na szczęście możesz zainstalować GNU znaleźć przez Homebrew (powinna być również opcja dla Fink i Macports ):Po zainstalowaniu znaleziska GNU powinny być dostępne jako
gfind
. Więc wszystko, co musisz zrobić, to zmienić powyższą linię na:źródło
find
autorem, jak autor, te argumenty-printf
to dyrektywy formatu, które można znaleźć wman find
(szukaj piątego wystąpieniaprintf
na tej stronie).find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' '
da ci mniej więcej taki sam wynik na MacOS, używając tylko wbudowanych narzędzisort -r
aby odwrócić sortowanie i umieścić ostatnio zmodyfikowane pliki na wierzchu.MAC OSX 2019
Jeśli nie obchodzi Cię, kiedy została utworzona, ale chcesz posortować listę, użyj tego polecenia
==>
ls -t
Jeśli chcesz zamówić i zobaczyć datę i informacje o użytkowniku, użyj tego polecenia
===>
ls -lt
źródło
W przypadku
zsh
użytkowników możesz również użyć kwalifikatorów glob (również udokumentowanychman zshexpn
):Gdzie
o
oznacza porządek sortowania, w górę im
oznacza czas ostatniej modyfikacji .Może to być przydatne, gdy jest używane w pętli for lub innym poleceniu:
Lub połączony z innym kwalifikatorem glob:
źródło