Con un findcomando, puedo mostrar nombres de directorios con múltiples niveles. El siguiente comando muestra todos los directorios debajo de la /varruta con una profundidad de 2:
find /var -maxdepth 2 -type d;
El resultado muestra:
/var
/var/log
/var/log/sssd
/var/log/samba
/var/log/audit
/var/log/ConsoleKit
/var/log/gdm
/var/log/sa
Con un statcomando, puedo encontrar la fecha de modificación:
stat /var/log/samba | grep 'Modify:'
El resultado es:
Modify: 2014-01-02 11:21:27.762346214 -0800
¿Hay alguna forma de combinar los dos comandos para que los directorios se enumeren con la fecha y la hora modificadas?

-printfsiguiente opción evita llamarstatpor cada archivo encontrado. En mi prueba, el comando produce una salida casi idéntica, solo una precisión de un dígito adicional en los segundos.states-f.find /var -maxdepth 2 -type d -exec stat -f "%t%Sm %N" {} \;La respuesta aceptada funciona pero es lenta. No es necesario ejecutar la estadística para cada directorio, find proporciona la fecha de modificación y puede imprimirla directamente. Aquí hay un comando equivalente que es considerablemente más rápido:
fuente
findfrom msys que se ejecuta en Windows, que carece de unstatcomando.%Tcimpresiones "fecha y hora de las localidades", permitiendo que la cadena de formato "% p% Tc"find /var -maxdepth 2 -type d | xargs ls -oAHdEsta es una forma de obtener su
lscomando muestre la ruta completa del directorio. Si bienlstiene el-Rparámetro de búsqueda recursiva, caminos no se mostrará en los resultados con el-lo la-oopción (en OSX, por lo menos), por ex con:ls -lR.fuente
find /var -maxdepth 2 -type d -lsque es simplemente más simple.Las versiones recientes de GNU
findtambién incluyen una-printfopción que incluye campos de fecha. Si necesita imprimir el nombre del archivo y la hora de modificación en el formato estándar "C", puede usar-printf "%c %p\n".Si desea la fecha en un formato específico, puede usar el
%Ccarácter de campo seguido de un campo. Por ejemplo, el año de 4 dígitos sería%CY,Ysiendo el carácter del año de 4 dígitos.Tenga en cuenta que si necesita varios campos, deberá especificar
%Cvarias veces. Por ejemplo, el formato AAAA-MM-DD se vería así%CY-%Cm-%Cd.Consulte las páginas de manual o la documentación en línea para obtener detalles adicionales.
Aquí hay un ejemplo práctico:
fuente
Otro que utilizo para imprimir archivos modificados en el último día. ls -ltr me da más detalles como el tiempo de modificación, el usuario, etc.
fuente
-name '*.ext'especificación.ls -ltOrdena la hora de modificación.)-print0lugar de-printy luego usar enxargs -0lugar dexargs.prueba esta línea:
aquí lo ejecuté, sale:
fuente