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


Risposte:


1637
ls -t

oppure (per il contrario, il più recente in fondo):

ls -tr

La lspagina man descrive questo in maggiori dettagli ed elenca altre opzioni.


312
ls -haltè per human readable, show hidden, print details, sort by date.
Evgeni Sergeev,

6
Nel caso qualcuno si stia chiedendo, entrambi gli argomenti -te -rsono specificati nella sezione circa lsnello standard POSIX , quindi dovrebbero essere compatibili tra Unices.
Mark Amery,

5
ls -lltper aver mostrato la data e l'ora e l'ordinamento
Harshul Pandav,

4
Sì, è possibile
Ashraf.Shk786,

6
@EvgeniSergeev NON MEMORIZZARE ls -haltun semplice errore di battitura può causare l'arresto anomalo del server! linux.die.net/man/8/halt
Isaac,

148

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


Ho usato questo per ottenere l'elenco dei file nel mio repository Git entro la data dell'ultima modifica. ls -alt $(git ls-files -m)Grazie!
NobleUplift

45

Per una risposta completa ecco quello che uso: ls -lrth

Inseriscilo nello script di avvio /etc/bashrce assegna un alias come questo: alias l='ls -lrth'riavvia il terminale e dovresti essere in grado di digitare le visualizzare un lungo elenco di file.


14
Puoi anche chiamare source /etc/bashrcse vuoi aggiungerlo al tuo repertorio mentre corri.
cwallenpoole,

1
Puoi anche aggiungerlo ~/.bash_aliasessolo per il tuo utente (puoi creare il file se non esiste già
Dinei

29

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 esaminare in modo ricorsivo quali file sono stati modificati negli ultimi 5 minuti.

... o ora, con la versione recente di GNU trovare :

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

... e anche per non limitare ai file :

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

(notare il -dpassaggio a lsper non visualizzare il contenuto delle directory)

Modo più robusto?

Dai un'occhiata alla mia risposta per trovare e ordinare per data di modifica


Ricorsivamente intendi che elenca tutti i file nelle sottodirectory, non ha già un interruttore per farlo?
jiggunjer,

@jiggunjer ordinerà ls -Rltrper dir, quindi per data, find -type f -mmin -5 -exec ls -ltr {} +stamperà solo i file modificati negli ultimi 5 minuti, ordinati per data, indipendentemente dall'albero delle directory!
F. Hauri,

Nota che questo non funzionerà se l'elenco dei file è troppo lungo per essere passato come invocazione di una shell a ls( unix.stackexchange.com/a/118200/27186 ) - allora vedrai un gruppo ordinato di file, poi un altro gruppo ordinato di file, ecc. ma l'intero elenco non verrà ordinato. Vedere superuser.com/questions/294161/… per ordinare elenchi più lunghi con find.
unhammer,

@unhammer Hai ragione, affinché funzioni in modo sicuro, vedi la mia recente risposta a Unix / Linux trovare e ordinare per data di modifica
F. Hauri

20

Inserisci:

alias lt='ls -Alhtr'

nel $homedir/.bashrc


15

Mnemonico

Per non ignorare le voci che iniziano con .e ordina per data (prima il più recente):

ls -at

Per non ignorare le voci che iniziano con .e invertire l'ordinamento per data (prima il più vecchio):

ls -art

Per non ignorare le voci che iniziano con ., utilizza un formato di elenco lungo e ordina per data (prima il più recente):

ls -alt

Per le dimensioni di stampa umana leggibile, non ignorare le voci che iniziano con ., utilizzare un formato di elenco lungo e ordinare per data (prima il più recente) (nota @EvgeniSergeev):

ls -halt

ma fai attenzione con l'ultimo , perché un semplice errore di battitura può causare un arresto anomalo del server ... (nota di @Isaac)


14

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

find / -ctime 3

10

Per mostrare i 10 più recenti ordinati per data, uso qualcosa del genere:

ls -t ~/Downloads | head -10

o per mostrare più vecchio

ls -tr ~/Downloads | tail -10

esso GIV ls -t head -2e ls -tr | tail -2dà stesso risultato, opzione (-t / -tr) dovrebbe essere mantenuto fisso e modificato la coda / testa o viceversa, sia modifing è come modyfing nulla
DDS

7

Utilizzando solo comandi Unix di base:

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 sort, quindi questa risposta potrebbe probabilmente essere migliorata. Per non parlare, ha bisogno di ulteriori opzioni per lse sortda usare timestamp esatte, ma non tutti avranno bisogno di questo.


5
Ho il sospetto che la tua risposta non abbia ottenuto alcun voto perché analizza l'output di ls - vedi l'argomento canonico contro farlo e questa domanda sul non analizzare ls
Eponimo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.