ver una script por modificacion listar hora fechas fecha determinada creacion comando cambiar buscar archivos archivo linux command-line grep find stat

una - ver archivos por fechas linux



¿Cómo mostrar el tiempo de fecha modificado con el comando ''buscar''? (6)

Con un comando de find , puedo mostrar nombres de directorios con múltiples niveles. El siguiente comando muestra todos los directorios en la ruta /var 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 comando stat , puedo encontrar el tiempo de fecha modificado:

stat /var/log/samba | grep ''Modify:''

El resultado es:

Modify: 2014-01-02 11:21:27.762346214 -0800

¿Hay alguna manera de combinar los dos comandos para que los directorios se enumeren con la fecha de modificación?


La respuesta aceptada funciona pero es lenta. No es necesario ejecutar stat para cada directorio, find proporciona la fecha de modificación y puede simplemente imprimirlo directamente. Aquí hay un comando equivalente que es considerablemente más rápido:

find /var -maxdepth 2 -type d -printf "%p %TY-%Tm-%Td %TH:%TM:%TS %Tz/n"


Las versiones recientes de find de GNU también incluyen una opción -printf 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 utilizar -printf "%c %p/n" .

Si desea la fecha en un formato específico, puede usar %C seguido de un carácter de campo. Por ejemplo, el año de 4 dígitos sería %CY , siendo Y el personaje para el año de 4 dígitos.
Tenga en cuenta que si necesita varios campos, deberá especificar %C varias veces. Por ejemplo, el formato AAAA-MM-DD se vería como %CY-%Cm-%Cd .

Consulte las páginas man o la documentación en línea para obtener detalles adicionales.


Otra que utilizo para imprimir archivos modificados en el último día. ls -ltr me da más detalles como tiempo de modificación, usuario, etc.

find <my_dir> -mtime -1 -type f -print | xargs ls -ltr


Puede usar el -exec para find y definir el formato de salida de la stat usando el -c siguiente manera:

find /var -maxdepth 2 -type d -exec stat -c "%n %y" {} /;

Esto debería dar el nombre de archivo seguido de su tiempo de modificación en la misma línea de la salida.


prueba esta línea:

find /var -maxdepth 2 -type d|xargs stat|grep -E ''File|Modi''

aquí lo ejecuté, produce:

.... File: ‘/var/cache/cups’ Modify: 2013-12-24 00:42:59.808906421 +0100 File: ‘/var/log’ Modify: 2014-01-01 12:41:50.622172106 +0100 File: ‘/var/log/old’ Modify: 2013-05-31 20:40:23.000000000 +0200 File: ‘/var/log/journal’ Modify: 2013-12-15 18:56:58.319351603 +0100 File: ‘/var/log/speech-dispatcher’ Modify: 2013-10-27 01:00:08.000000000 +0200 File: ‘/var/log/cups’ Modify: 2013-12-22 00:49:52.888346088 +0100 File: ‘/var/opt’ Modify: 2013-05-31 20:40:23.000000000 +0200 ....


find /var -maxdepth 2 -type d | xargs ls -oAHd

Esta es una forma de hacer que su comando ls básico muestre la ruta completa del directorio. Mientras ls tiene el parámetro -R para la búsqueda recursiva, las rutas no se mostrarán en los resultados con la opción -l o -o (en OSX, al menos), por ejemplo con: ls -lR .