Risposte:
Puoi usare:
ls -Rt
dove -Rsignifica ricorsivo (include sottodirectory) e -tsignifica "ordina per data dell'ultima modifica".
Per visualizzare un elenco di file ordinati per data di modifica, utilizzare:
ls -l -Rt
È anche possibile creare un alias per ottenere ciò:
alias lt='ls -lht'
lt
Dove -hfornisce un output più leggibile.
ls -lrt[RhA]. l' -rinverte l'ordinamento, lasciando roba da poco edito in fondo alla lista ...
-ilati dà praticamente tutte le informazioni di cui avresti bisogno. $ ls -ilaRt
ll -Rtera la soluzione perfetta per me poiché avevo bisogno di vedere i file per data modificati più di recente. Questo potrebbe essere utile ad altri.
llè non esiste e non è un comando. È principalmente un alias nella shell bash, ma non è definito nella maggior parte / alcuni /? distribuzioni Linux. Alcuni lo definiscono come alias ll='ls -l'in /etc/bash.bashrc o /etc/.bashrc. Quindi potrebbe non funzionare e potrebbe non esistere sul sistema OP. Usa ls -l -Rtalmeno, poiché lsè un comando standard definito da posix. O specifica che intendevi alias ll='ls -l'; ll -Rt.
Se desideri un elenco principale in cui tutti i file siano ordinati insieme per data di modifica, che mostri la directory in cui si trovano, ma non raggruppati per directory , puoi utilizzare questo:
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Il risultato assomiglia molto a ls -l:
-rw-r - r-- 1 root root 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz -rw-r - r-- 1 radice radice 22946 13/08/2009 11:59:20 /usr/share/man/man1/curl.1.gz -rw-r - r-- 1 root root 728 17/08/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz -rw-r - r-- 1 root root 873 18/08/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz -rw-r - r-- 1 root root 2552 19/08/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz -rw-r - r-- 1 radice radice 9546 19/08/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz -rw-r - r-- 1 root root 2201 19/08/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz -rw-r - r-- 1 root root 926 19/08/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz -rw-r - r-- 1 radice radice 18052 19/08/2009 04:11:47 /usr/share/man/man1/mono.1.gz -rw-r - r-- 1 root root 1845 19/08/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz
Per quelli di voi che utilizzano Mac OS X, l'opzione -printf non è disponibile su BSD find (riceverete questo errore :)find: -printf: unknown primary or operator . Fortunatamente puoi installare GNU find tramite Homebrew (dovrebbe esserci un'opzione anche per Fink e Macports ):
brew install findutils
Dopo averlo installato, GNU find dovrebbe essere disponibile come file gfind. Quindi, tutto ciò che devi fare è cambiare la riga sopra in:
gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
findcome l'autore, questi argomenti -printfsono direttive di formato che possono essere trovate in man find(cerca la quinta istanza di printfin quella pagina).
find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' 'ti darà più o meno lo stesso output su MacOS usando solo utilità integrate
sort -rper invertire l'ordinamento e avere in primo piano i file modificati più di recente.
MAC OSX 2019
Se non ti interessa a che ora è stato creato ma vuoi che il tuo elenco sia ordinato, usa questo comando
==> ls -t
Se vuoi ordinare e vedere la data e le informazioni sull'utente usa questo comando
===> ls -lt
Per gli zshutenti, potresti anche usare qualificatori glob (documentati anche su man zshexpn):
echo *(om)
Dove osta per ordinamento, in alto e mindica l'ora dell'ultima modifica .
Questo può essere utile se usato in un ciclo for o in un altro comando:
for file in *(^om); do
[ -e "$file" ] || continue
# do something with file orderer from least recently modified to last modified
done
O incatenato con un altro qualificatore glob:
last_modified_file=(*(om[1]))