2012-07-17 13 views
9

Aclaremos esto de una vez por todas. Traté de Google esto, pero parece que esta información no se puede encontrar en un solo lugar.ctime, mtime, holding directory, windows, linux

Cuando se crea o se elimina un archivo, el mtime del directorio de espera cambia tanto en Windows como en Linux. ctime también cambia en Linux bot no en Windows porque ctime es tiempo de creación.

Si se vuelve a abrir y escribir un archivo, el directorio de espera no cambia. Sin embargo, tanto en Windows como en Linux, el archivo mtime cambia, y en Linux también cambia el tiempo, en Windows el tiempo es crear tiempo.

¿Es esto correcto? ¿Qué advertencias hay? ¿Hay excepciones, por ejemplo, comparticiones de red de Windows? ¿O Samba?

Editar: aquellos que han votado a favor de cerrar esto como fuera de tema, por favor dejen un comentario en que sitio creen que está en el tema. Hay un montón de preguntas -mtime/CTime en Stackoverflow y sólo porque no he incluido fragmentos de PHP que se basan en este conocimiento eso no quiere decir que no hay ninguno:/

+1

Si mal no recuerdo, ctime cambia solo cuando la función de guardar editor elimina el archivo primero y luego lo vuelve a crear. Si simplemente abre el archivo para sobrescribir, entonces ctime no cambiará, solo mtime. –

+0

Linux tiene X filesystems y puedo imaginar que todos pueden hacerlo (leve o totalmente) de manera diferente. No, incluso si lo desea, no puede aclarar esto de una vez por todas. Así no es cómo funciona. – hakre

+0

Eso es como decir que ['getdents'] (http://www.kernel.org/doc/man-pages/online/pages/man2/getdents.2.html) tiene valores de retorno ligeramente diferentes en diferentes sistemas de archivos. Seguramente hay semántica y expectativas de este también. – chx

Respuesta

4

creo que de esta manera:

Un directorio es un archivo que contiene punteros (o 'enlaces') a los archivos.

A partir de ese:

  • Cambio de la contenido de un archivo no afectarán el directorio
    (a menos que el archivo se elimina primero y luego creó de nuevo con el mismo nombre, como se ha mencionado por Gabor Garami arriba)

  • cómo añadir, borrar o cambiar el nombre de archivos va a cambiar el contenido del directorio de archivos
    lo que hará que su ctime/-mtime a cambiar a medida que hav e descrito, según el sistema operativo

+0

Sé lo que se supone que es *, pero esa no es la pregunta ... estamos hablando de Windows, ¿verdad? – chx

+0

Bueno, en ese caso estamos hablando de filosofía y no de ciencia ... Supongo que cada versión de Windows tendrá su propio comportamiento. Te sugiero que abandones esta ruta y busques una solución completamente diferente. – Gonen

+1

Lo que estaba buscando es "Sí, este es el comportamiento esperado, ¿alguien ha visto de manera diferente?" y la respuesta sería como "Con la red de Windows ME en Netware 286 en realidad ..." – chx