Come posso ordinare l'output di 'ls' per l'ultima data modificata?
Come posso ordinare l'output di ls
per l'ultima data modificata?
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.
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)
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)
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
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.
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)…