¿Podría decirme cómo puedo cambiar la fecha de creación de un archivo en Lion? Me doy cuenta de que existe el comando touch-t, pero eso no funciona en Lion. Un par de personas han mencionado otra forma, pero creo que han escrito la solución en lenguaje "codificador" en lugar de lenguaje laico: ¿alguien podría responderlo de una manera que un laico pueda ejecutar?
Muchas gracias por su ayuda.
Respuestas:
touch -t
normalmente solo cambia la modificación y los tiempos de acceso. Solo cambia el tiempo de creación si el tiempo objetivo es anterior al tiempo de creación original.SetFile -d
siempre cambia el tiempo de creación.SetFile es parte del paquete de herramientas de línea de comandos que se puede descargar desde developer.apple.com/downloads o desde las preferencias de Xcode.
fuente
+%Y%m%d%H%M.%S
(observe el punto entre minutos y segundos)CpCreationDate
enfish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
En Mac OS X parece haber cuatro marcas de tiempo diferentes asociadas con un archivo. Estas marcas de tiempo no siempre se actualizan de forma independiente el uno del otro, pero uno puede tener algún control individual con un poco de cuidado y con el uso de
touch
,SetFile
ychown
(ochmod
). Para ver esto, experimentemos y creemos un nuevo archivo desde el símbolo del sistema#
:La primera fecha indicada es la última hora de acceso (
atime
), la segunda es la última hora 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
), verman lstat
.Para modificar el tiempo de acceso (
atime
) a un tiempo específico, use:Para modificar el tiempo de modificación (
mtime
) y el tiempo de creación del archivo (Btime
) a un tiempo específico use: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 dado, use (como lo propusieron otros arriba):Para modificar solo la hora del último cambio de estado (
ctime
) a la hora actual del sistema, utilice, por ejemplo:donde
username
es el propietario del archivo (según lo informado porstat
ols -l
). Esto no cambia la propiedad del archivo, pero accede al inodo del archivo y lo registra como el último cambio de estado. Desafortunadamente, no es posible especificar la hora explícitamente aquí, excepto cambiar 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 las últimas 3):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[volver a la fecha normal del sistema](Por supuesto, restablecer la fecha del sistema puede no ser una operación libre de riesgos, se le ha advertido).
fuente
El comando de línea de
touch
comandos funciona en Lion, pero necesita un poco de información sobre cómo usarlo.En primer lugar, debe escribirlo, no es una utilidad que funcione gráficamente en una ventana. El lugar donde lo escribe es una aplicación llamada Terminal . Puede encontrar esto en su carpeta de Utilidades, o usar la búsqueda de Spotlight para encontrarlo.
Una vez que lo inicias, obtienes una ventana de línea de comandos donde puedes escribir comandos. El hecho de que esté escribiendo no significa que tenga algo que ver con la codificación, pero para alguien nuevo en los comandos del sistema operativo "anticuado" puede parecer un poco intimidante.
Entonces, el comando se llama táctil , y después del comando puede pasar varios parámetros, el único requerido es el nombre del archivo. Escribir lo siguiente establecerá la última fecha de modificación del archivo a la hora actual:
Por supuesto, es posible que primero necesite encontrar el archivo, lo que podría requerir más comandos para acceder a él. el comando cd o Change Directory ayuda aquí:
O simplemente puede agregar la ruta completa al archivo como parte del comando:
El uso más avanzado del comando táctil le permite especificar el tiempo que desea establecer, en lugar de utilizar el tiempo de ejecución, establecer el acceso en lugar de los tiempos de modificación, etc. Esto es lo que hacen parámetros como -t y otros. Algunos configuran el tiempo para que sea el tiempo de otro archivo, otros lo configuran para retroceder o avanzar en el tiempo por X cantidad ( consulte aquí para obtener más detalles), por ejemplo:
Lo siguiente es de esta página, que también es una referencia útil, y un gran ejemplo con algunos consejos para aquellos que no se sienten cómodos con las ubicaciones de los archivos en la línea de comandos.
Tenga en cuenta que esto cambiará los atributos de fecha de modificación y fecha de creación solo si su archivo se creó después de la fecha que ingresó. Esto se debe a que un archivo no se puede modificar antes de que se haya creado. Si se creó antes de la fecha establecida, solo se cambiará la fecha modificada.
fuente
touch
modifica la fecha de modificación, no la fecha de creación del archivo.touch
de los parámetros que proporcionó anteriormente cambió la modificación pero no las fechas de creación de mi archivo de prueba.touch
, modifica la fecha de creación dependiendo de los argumentos. Si proporciona una fecha de modificación anterior a la fecha de creación del archivo, la fecha de creación cambiará automáticamente al nuevo valor de fecha de modificación, ya que un archivo no puede modificarse antes de crearse.creation
fecha. Pude cambiaraccess
y lasmodified
fechas a una "fecha en el pasado", pero no modificó la fecha de creación. Verifique la página de manual para tocar, no menciona la fecha de creación. Sistema de archivos: Mac OS Extended (registrado, encriptado). El usoSetFile -d "$(GetFileInfo -m test.txt)" file.txt
funcionó a la perfección.Greats sugiere aquí, en particular el último (de Lauri Ranta, respondió el 21 de agosto a las 15:21). Perfekt!
Ahora uso un simple flujo de trabajo de Automator para cambiar por lotes múltiples archivos:
El script de shell es:
Esto funciona como un encanto.
fuente
La forma más fácil que encontré fue crear una nueva carpeta, copiar todas las subcarpetas de la carpeta atenuada en la nueva carpeta, y listo, la nueva carpeta no está atenuada. Incluso puedes hacer esto en el buscador.
fuente