En Mac OS X, parece que hay cuatro marcas de tiempo diferentes asociadas con un archivo. Estas marcas de tiempo no siempre se actualizan independientemente unas de otras, pero se puede tener cierto control individual con un poco de cuidado y con el uso de touch
, SetFile
y chown
(o chmod
). Para ver esto, experimentemos y creemos un nuevo archivo desde el símbolo del sistema #
:
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
La primera fecha indicada es la última vez que se accedió ( atime
), la segunda es la última fecha de modificación ( mtime
), la tercera es el último cambio de estado ( ctime
), la cuarta es la hora de creación del archivo (nacimiento , Btime
), vea man lstat
.
Para modificar el tiempo de acceso ( atime
) a un tiempo específico, use:
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Para modificar el tiempo de modificación ( mtime
) y tiempo de creación del archivo ( Btime
) para un uso del tiempo especificado:
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
¡Aparentemente, esto también actualiza automáticamente la hora del último cambio de estado ( ctime
) a la hora actual del sistema!
Para modificar solo el tiempo de creación / nacimiento ( Btime
) a un tiempo determinado, use (como lo propusieron otros):
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
Para modificar solo la hora del último cambio de estado ( ctime
) a la hora actual del sistema, por ejemplo:
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
donde username
es el propietario del archivo (según lo informado por stat
o ls -l
). Esto no cambia la propiedad del archivo, pero accede al inodo del archivo y lo registra como el momento del último cambio de estado. Desafortunadamente, no es posible especificar la hora aquí explícitamente, excepto cambiando la hora de la computadora ...
En resumen, para poder cambiar las cuatro marcas de tiempo de forma independiente, se puede usar (en este orden para los últimos 3):
-
touch -a -tCCYYMMDDHH.SS <file>
-
touch -m -tCCYYMMDDHH.SS <file>
-
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [establecer fecha del sistema]
chown username <file>
[volver a la fecha normal del sistema]
(Por supuesto, restablecer la fecha del sistema puede no ser una operación sin riesgos, ha sido advertido).