2010-09-01 31 views
65

Me pregunto cuándo se modificó la fecha de la última modificación del directorio. Modifiqué un archivo dentro de un directorio particular (a través de FTP), pero el LMD del directorio no cambió. ¿Cómo se supone que debe funcionar?Directorio última fecha de modificación

Respuesta

104

El tiempo de modificación (mtime) en el directorio cambia cuando se agrega, elimina o cambia el nombre de un archivo o subdirectorio.

La modificación del contenido de un archivo dentro del directorio no cambia el directorio en sí mismo, ni tampoco la actualización de los tiempos modificados de un archivo o subdirectorio. Si cambia los permisos en el directorio, el tiempo cc cambia pero el mtime no.

+2

¿Se modifica cuando se modifica un subdirectorio? – Flimm

+6

@Flimm: depende de la naturaleza de la modificación del subdirectorio. Si se agrega o elimina un archivo del subdirectorio, entonces no. Si se renombra el subdirectorio, entonces sí (porque el nuevo nombre se almacena en el directorio que contiene el subdirectorio, de modo que lo que 'realmente' cambia es la entrada en el directorio principal, y nada cambia en el subdirectorio). –

+1

@JonathanLeffler ¿Hay alguna manera de saber de forma recursiva que algo ha cambiado, incluso si hay 200 niveles en el fondo? – Llamageddon

24

Un directorio es como un archivo que contiene una lista de los nombres de archivo en él (de hecho, puede haber abierto accidentalmente un directorio en un editor, donde se puede ver que es una lista legible de sus contenidos) - por lo que se modifica cuando se agrega, elimina o cambia el nombre de un archivo en ese directorio.

+1

¿Se modifica cuando se modifica un subdirectorio? – Flimm

+1

@Flimm Parece que solo actualiza el mtime del directorio que lo contiene, de lo contrario, aparecería hasta la raíz. –

+0

Fuera de interés, ¿qué editores le permiten abrir un directorio directamente? La mayoría (incluso 'ed' y' cat') parecen quejarse, u ofrecen una lista de archivos para abrir en su lugar. – naught101

Cuestiones relacionadas