So ls -t
che elencherà tutti i file in base all'ora modificata. Ma come posso limitare questi risultati solo agli ultimi n file?
tharl
perché tende ad avere tutto ciò di cui ho bisogno.
So ls -t
che elencherà tutti i file in base all'ora modificata. Ma come posso limitare questi risultati solo agli ultimi n file?
tharl
perché tende ad avere tutto ciò di cui ho bisogno.
Risposte:
Prova a usare la testa o la coda. Se vuoi i 5 file modificati più di recente:
ls -1t | head -5
Il -1 (che è uno) dice un file per riga e la testa dice prendere le prime 5 voci.
Se vuoi gli ultimi 5 prova
ls -1t | tail -5
ls
in più colonne, ma l'output di ls
viene inviato al seguente comando con 1 file / dir alla volta
ls -1t | head -n 6 | tail -n 5
La risposta accettata elenca solo i nomi dei file, ma per ottenere i primi 5 file si può anche usare:
ls -lht | head -6
dove:
-l
output in un formato elenco
-h
rende l'output leggibile dall'uomo (ovvero le dimensioni dei file appaiono in kb, mb, ecc.)
-t
ordina l'output posizionando prima il file modificato più di recente
head -6
mostrerà 5 file perché ls
stampa la dimensione del blocco nella prima riga di output.
Penso che questo sia un approccio leggermente più elegante e forse più utile.
Esempio di output:
total 26960312
-rw-r--r--@ 1 user staff 1.2K 11 Jan 11:22 phone2.7.py
-rw-r--r--@ 1 user staff 2.7M 10 Jan 15:26 03-cookies-1.pdf
-rw-r--r--@ 1 user staff 9.2M 9 Jan 16:21 Wk1_sem.pdf
-rw-r--r--@ 1 user staff 502K 8 Jan 10:20 lab-01.pdf
-rw-rw-rw-@ 1 user staff 2.0M 5 Jan 22:06 0410-1.wmv
Per impostazione predefinita ls -t
ordina l'output dal più recente al meno recente, quindi la combinazione di comandi da utilizzare dipende dalla direzione in cui si desidera ordinare l'output.
Per i 5 file più recenti ordinati dal più recente al meno recente, utilizzare head
per prendere le prime 5 righe di output:
ls -t | head -n 5
Per i 5 file più recenti ordinati dal più vecchio al più recente, utilizzare l' -r
interruttore per invertire ls
il criterio di ordinamento e utilizzare tail
per prendere le ultime 5 righe di output:
ls -tr | tail -n 5
ls -t
elenca i file in base all'ora di creazione e non all'ultima modifica. Utilizzare ls -ltc
se si desidera elencare i file dall'ultima modifica apportata dall'ultimo al primo (dall'alto verso il basso). Quindi per elencare l'ultimo n:ls -ltc | head ${n}
-t sort by modification time, newest first
ls -lrt
potrebbe aiutare qualcuno.