2009-04-09 13:17:20 +0000 2009-04-09 13:17:20 +0000
1422
1422

Jak posortować wyjście 'ls' według ostatniej zmodyfikowanej daty?

Jak posortować wyjście ls według ostatniej zmodyfikowanej daty?

Odpowiedzi (10)

1687
1687
1687
2009-04-09 13:20:44 +0000
ls -t

lub (dla odwrotnej strony, najnowsze na dole):

ls -tr

Strona man ls opisuje to bardziej szczegółowo i wymienia inne opcje.

155
155
155
2010-04-06 14:44:45 +0000

Spróbuj tego: ls -ltr. To da ci ostatnią do końca listę

48
48
48
2012-04-15 20:23:29 +0000

Dla pełnej odpowiedzi jest to, czego używam: ls -lrth

Umieść to w skrypcie startowym /etc/bashrc i nadaj pseudonim: alias l='ls -lrth' Restartuj swój terminal i powinieneś być w stanie wpisać l i zobaczyć długą listę plików.

31
31
31
2013-07-19 11:01:24 +0000

I use sometime this:

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -tr

or

find . -type f -mmin -5 -print0 | xargs -0 /bin/ls -ltr

to look recursively about which files was modified in last 5 minutes.

… or now, with recent version of GNU find:

find . -type f -mmin -5 -exec ls -ltr {} +

… and even for not limiting to files:

find . -mmin -5 -exec ls -ltrd {} +

(note the -d switch to ls for not displaying content of directories)

More robust way?

Have a look at my anser to find and sort by date modified

22
22
22
2012-04-15 18:41:06 +0000

Dodaj:

alias lt='ls -Alhtr'

w $homedir/.bashrc

18
18
18
2017-07-26 07:21:37 +0000

Mnemonic

For don’t ignore entries starting with . and sort by date (latest first):

ls -at

For don’t ignore entries starting with . and reverse sort by date (oldest first):

ls -art

For don’t ignore entries starting with ., use a long listing format and sort by date (latest first):

ls -alt

Aby wydrukować rozmiary czytelne dla człowieka, nie ignoruj wpisów zaczynających się od ., użyj formatu długiej listy i sortuj według daty (najpierw najnowszy) (uwaga @EvgeniSergeev):

ls -halt

, ale ostatni, ponieważ prosta mgiełka może spowodować awarię serwera. .. (@Notacja Isaaca)

16
16
16
2013-11-11 16:11:57 +0000

Znajdź wszystkie pliki w systemie plików, które zostały zmodyfikowane maksymalnie 3 * 24 godziny (3 dni) temu do chwili obecnej:

find / -ctime 3
12
12
12
2016-03-06 18:21:16 +0000

Aby pokazać 10 ostatnich posortowanych według daty, używam czegoś takiego:

ls -t ~/Downloads | head -10

lub aby pokazać najstarsze

ls -tr ~/Downloads | tail -10
9
9
9
2014-06-15 21:47:51 +0000

Używając tylko bardzo podstawowych komend uniksowych:

ls -nl | sort -k 8,8n -k 6,6M

To działało na Linuksie; kolumna 8 jest “n” (numeryczna), kolumna 6 jest “M”, miesiąc.

Jestem nowy w sort, więc ta odpowiedź prawdopodobnie mogłaby zostać poprawiona. Nie wspominając o tym, że potrzebuje dodatkowych opcji do ls i sort, aby używać dokładnych znaczników czasu, ale nie każdy będzie tego potrzebował.

-1
-1
-1
2020-02-28 11:04:14 +0000

Jednym z możliwych sposobów pokazania np. ostatnich 10 zmodyfikowanych plików jest komenda:

ls -lrth | tail -n 10

Opis powyższej komendy:

ls - list

argumenty:

l - long
r - reverse
t - sort by time
h - human readable

następnie jest ona przesyłana do komendy tail, która pokazuje tylko 10 ostatnich linii, zdefiniowanych przez parametr n (ilość linii)…