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

Come posso ordinare l'output di 'ls' per l'ultima data modificata?

Come posso ordinare l'output di ls per l'ultima data modificata?

Risposte (10)

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

o (per il verso, il più recente in basso):

ls -tr

Il ls man page lo descrive più dettagliatamente, ed elenca altre opzioni.

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

Prova questo: ls -ltr. Ti darà il recente alla fine della lista

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

Per una risposta completa ecco cosa uso: ls -lrth

Mettete questo nel vostro script di avvio /etc/bashrc e assegnate un alias come questo: alias l='ls -lrth' Riavviare il terminale e dovreste essere in grado di digitare l e vedere una lunga lista di file.

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

Uso qualche volta questo:

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

o

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

per cercare recursivamente su quali file sono stati modificati negli ultimi 5 minuti.

… o ora, con la recente versione di GNU find:

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

… e anche per non limitarsi ai file:

find . -mmin -5 -exec ls -ltrd {} +
``` &001 


(notare il passaggio `-d` a `ls` per non visualizzare il contenuto delle directory) 


## modo più robusto? 


Date un'occhiata a [ il mio anser per _trovare e ordinare per data modificata_ ](https://superuser.com/a/1481352/178656)
22
22
22
2012-04-15 18:41:06 +0000

Aggiungere:

alias lt='ls -Alhtr'

in $homedir/.bashrc

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

Mnemonico

Per non ignorare le voci che iniziano con . e ordinare per data (prima le più recenti):

ls -at

Per non ignorare le voci che iniziano con . e ordinare per data (prima le più recenti):

ls -art

Per non ignorare le voci che iniziano con ., utilizzare un formato di elenco lungo e ordinare per data (prima le più recenti):

ls -alt
``` ```
ls -halt

Per la stampa di formati leggibili dall'uomo, non ignorare le voci che iniziano con ., usare un formato di elenco lungo e ordinare per data (prima la più recente) (@EvgeniSergeev note):

&001 &001

ma fare attenzione all'ultima , perché un semplice errore di digitazione può causare un crash del server. .. (nota @Isaac)

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

Trova tutti i file del file system che sono stati modificati al massimo 3 * 24 ore (3 giorni) fa fino ad ora:

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

Per mostrare i 10 più recenti ordinati per data, uso qualcosa come questo:

ls -t ~/Downloads | head -10

o per mostrare i più vecchi

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

Usando solo comandi Unix molto semplici:

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

Questo ha funzionato su Linux; la colonna 8 è “n” (numerico), la colonna 6 è “M”, mese.

Sono nuovo a sort, quindi questa risposta potrebbe probabilmente essere migliorata. Per non parlare del fatto che ha bisogno di opzioni aggiuntive a ls e sort per usare i timestamp esatti, ma non tutti ne avranno bisogno.

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

Un modo possibile per mostrare ad esempio gli ultimi 10 file modificati è il seguente comando:

ls -lrth | tail -n 10

Descrizione del suddetto comando:

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

argomenti:

&001

quindi è collegato al comando tail, che mostra solo 10 righe recenti, definite dal parametro n (numero di righe)…