¿Comando que me dirá la última vez que se modificó un directorio o alguno de sus subdirectorios?

¿Comando que me dirá la última vez que se modificó un directorio o alguno de sus subdirectorios?

Estamos intentando dejar de utilizar nuestro antiguo servidor de carpetas de inicio de Linux. Sin embargo, todavía tenemos algunas personas que lo utilizan activamente. Nuestro plan es cambiar las carpetas de inicio que nadie ha usado en los últimos seis meses para que sean de solo lectura. Tenemos clientes Mac y Windows que acceden a estos recursos compartidos a través de SMB.

Entonces mi pregunta es: ¿Existe algún comando que me indique la última vez que se modificó un directorio o cualquiera de sus subdirectorios?

O

¿Una lista de directorios principales que se han modificado desde una fecha determinada?

Esto me diría qué usuarios siguen usando activamente sus carpetas de inicio.

Respuesta1

Un problema con el que puede encontrarse es que modificar un archivo en un directorio no necesariamente cambia la marca de tiempo del directorio. He aquí un ejemplo:

paulgear@localhost:~/tmp$ echo test1 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:29 test1
paulgear@localhost:~/tmp$ date
Wed Jan 15 09:30:07 EST 2014
paulgear@localhost:~/tmp$ echo test2 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:30 test1

Observe cómo el reemplazo completo del contenido de test1 no actualizó la marca de tiempo del directorio. Entonces su comando de búsqueda probablemente debería buscar archivos además de directorios, algo como esto:

find . -mtime +180 -print0 | xargs -0 chmod a-w

O quizás desee hacer que los criterios de tiempo sean diferentes para archivos y directorios:

find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w

Para muchas (¿la mayoría?) aplicaciones que utilizan archivos compartidos SMB, esto no se aplica, porque generalmente escriben su contenido en un archivo temporal en el mismo directorio, luego eliminan el archivo original y luego cambian el nombre del archivo temporal al nombre original. Pero las aplicaciones de "bases de datos" como Access no hacen esto.

información relacionada