La combinazione di find
e ls
funziona bene per
- nomi di file senza ritorni a capo
- non molto grande quantità di file nomi di file
- non molto lunghi
La soluzione:
find . -name "my-pattern" ... -print |
xargs -0 ls -1 -t |
head -1
Diciamo scomposizione:
Con find
Possiamo abbinare tutti i file interessanti come questo:
find . -name "my-pattern" ...
quindi utilizzando -print0
possiamo passare tutti i nomi dei file in modo sicuro alla ls
in questo modo:
find . -name "my-pattern" ... -print0 | xargs -0 ls -1 -t
ls -t
ordinerà i file dal tempo di modifica (prima il più recente) e stampalo uno su una linea. È possibile utilizzare -c
per ordinare per ora di creazione. Nota: questo si interromperà con i nomi di file contenenti newline.
Infine head -1
ci ottiene il primo file nell'elenco ordinato.
Nota:xargs
utilizzare i limiti di sistema per la dimensione dell'elenco di argomenti. Se supera questa dimensione, xargs
chiamerà più volte ls
. Questo interromperà l'ordinamento e probabilmente anche l'output finale. Esegui
xargs --show-limits
per controllare i limiti del sistema.
fonte
2017-11-23 09:43:15
vedere http://superuser.com/questions/294161/unix-linux-find-and-sort-by-date-modified per ulteriori suggerimenti sulla risposta. L'ordinamento è il passaggio chiave per ottenere il tuo file più recente –