Questa è una versione ricorsiva (ovvero trova il file aggiornato più di recente in una determinata directory o in una qualsiasi delle sue sottodirectory)
find /dir/path -type f -printf "%[email protected] %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1
Breve spiegazione per i profani della riga di comando:
find /dir/path -type f
trova tutti i file nella directory-printf "%[email protected] %p\n"
stampa una riga per ogni file dove%[email protected]
è il float secondi dall'epoca 1970 e%p
è il percorso del nome file e\n
è il carattere di nuova riga- per maggiori informazioni vedi
man find
|
è una shellpipe
(vediman bash
sezione suPipelines
)sort -n
significa ordinare sulla prima colonna e trattare il token come numerico invece che lessicografico (vediman sort
)cut -d' ' -f 2-
significa dividere ogni riga usando ilman cut
)- NOTA:
-f 2
stamperebbe solo il secondo token
- NOTA:
tail -n 1
significa stampare l'ultima riga (vediman tail
)
ls -Art | tail -n 1
Ciò restituirà l'ultimo file o directory modificato. Non molto elegante, ma funziona.
Flag utilizzati:
-A
elenca tutti i file tranne .
e ..
-r
ordine inverso durante l'ordinamento
-t
ordina per ora, prima i più recenti
ls -t | head -n1
Questo comando fornisce effettivamente l'ultimo file o directory modificato nella directory di lavoro corrente.