Quiero encontrar archivos en subdirectorios ordenados por marca de tiempo (de creación), con el más reciente primero.
He mirado la página man pero parece que solo te permite filtrar por marca de tiempo en lugar de ordenar por marca de tiempo.
¿A qué opciones puedo pasar find
para lograr esto? Alternativamente, ¿cómo puedo combinarlo con otra herramienta, como sort
ordenar por marca de tiempo?
find
nada en un orden ordenado en particular, más allá de elegir entre una búsqueda de profundidad y una búsqueda de amplitud.find
que se pueden pasar a una sola instancials
.Respuestas:
Si bien la solución de Paul generalmente está bien, involucra más E / S que simplemente:
fuente
find
devuelve millones de archivos? ¿No va a ordenarlos todos como una lista muy larga? ¿Sigue siendo eficiente? (En lugar de ordenar cada directorio de forma independiente.)find bin/ -type f -printf '%Ts\t%p\0' | sort -nrz | cut -f2 -z | xargs -0 ls
Las nuevas versiones decut
tienen la opción -z, por lo que los nombres de archivo con nuevas líneas funcionarían.xargs -0 ls -t
enfoque no funcionará correctamente cuando haya tantos archivos quexargs
necesiten iniciarsels
más de una vez, pero este enfoque continuará funcionando.-maxdepth 1
en elfind
).