Esta es una versión recursiva (es decir, encuentra el archivo actualizado más recientemente en un directorio determinado o cualquiera de sus subdirectorios)
find /dir/path -type f -printf "%[email protected] %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1
Breve explicación laica de la línea de comando:
find /dir/path -type f
encuentra todos los archivos en el directorio-printf "%[email protected] %p\n"
imprime una línea para cada archivo donde%[email protected]
son los segundos flotantes desde la época de 1970 y%p
es la ruta del nombre de archivo y\n
es el carácter de nueva línea- para obtener más información, consulte
man find
|
es una conchapipe
(verman bash
sección sobrePipelines
)sort -n
significa clasificar en la primera columna y tratar el token como numérico en lugar de lexicográfico (verman sort
)cut -d' ' -f 2-
significa dividir cada línea usando elman cut
)- NOTA:
-f 2
imprimiría solo el segundo token
- NOTA:
tail -n 1
significa imprimir la última línea (verman tail
)
ls -Art | tail -n 1
Esto devolverá el último archivo o directorio modificado. No es muy elegante, pero funciona.
Banderas usadas:
-A
enumerar todos los archivos excepto .
y ..
-r
orden inverso al ordenar
-t
ordenar por tiempo, más reciente primero
ls -t | head -n1
Este comando en realidad proporciona el último archivo o directorio modificado en el directorio de trabajo actual.