¿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 que no funciona en Lion. Un par de personas han mencionado otra forma, pero creo que han escrito la solución en un lenguaje de «codificador» en lugar de en un lenguaje simple. ¿Alguien podría responder de una manera que un profano pueda ejecutar?

Muchas gracias por su ayuda.

Comentarios

  • El » codificador » explicación sobre la que han escrito otras personas es probablemente una referencia a » touch «. Usted ‘ tendría que abrir una Terminal, navegar a la carpeta donde está el archivo y luego usar el comando táctil para modificar la fecha de creación ‘ s.
  • FWIW Estás en las líneas correctas con » touch-t «, pero hay un espacio entre la hy la -. Es ‘ s » touch -t »

Respuesta

touch -t normalmente solo cambia los tiempos de modificación y acceso. Solo cambia la hora de creación si la hora objetivo es anterior a la hora de creación original.

touch -t 199912312359 file.txt touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt 

SetFile -d siempre cambia la hora de creación.

SetFile -d "12/31/1999 23:59:59" file.txt SetFile -d "$(GetFileInfo -m test.txt)" file.txt 

SetFile es parte del paquete de herramientas de línea de comandos que se puede descargar desde desarrollador .apple.com / downloads o de las preferencias de Xcode.

Comentarios

  • -m para cambiar la hora de modificación.
  • En Yosemite, el toque me pidió que usara el formato +%Y%m%d%H%M.%S (observe el punto entre minutos y segundos)
  • Escribí una función llamada CpCreationDate en fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Respuesta

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 entre sí, pero uno puede tener algunos ual control 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 

El La primera fecha indicada es la hora del último acceso (atime), la segunda es la hora de la última modificación (mtime), la tercera es el último cambio de estado ( ctime), el cuarto es el momento de la creación del archivo (nacimiento, Btime), consulte man lstat.

Para modificar el tiempo de acceso (atime) a un tiempo especificado, utilice:

# 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 el tiempo de creación del archivo (Btime) a un tiempo especificado use:

# 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 la hora de creación / nacimiento (Btime) a una hora determinada, utilice (as pr opuesto por otros anteriores):

# 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) al uso de 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 la hora del último cambio de estado. Desafortunadamente, no es posible especificar la hora explícitamente aquí más que 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 de los últimos 3):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [establecer la 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 libre de riesgos, «se le advirtió).

Comentarios

  • +1 Gracias por esta respuesta súper detallada. Esto resolvió todos mis problemas.
  • A veces termino con fotos que tienen fechas incorrectas porque mi GoPro se reinicia. Transfiero estas fotos a mi Mac y arreglo la fecha de acuerdo con estas instrucciones, pero cuando transfiero estas fotos a mi iPhone, la fecha sigue siendo incorrecta. La única forma que ‘ he encontrado de solucionarlo es con un editor EXIF de iOS. ¿Hay otro atributo de fecha oculto en alguna parte?
  • @Bowen: Las fechas a las que hace referencia en una foto son parte de los datos del formato de archivo de la foto en sí. La fecha de creación, fecha de modificación, etc. de los archivos mencionados anteriormente son los administrados por el sistema de archivos de su sistema operativo, se mantienen y actualizan por separado a los datos contenidos en el archivo.

Responder

El comando de la línea de comandos touch funciona en Lion, pero necesita un poco de experiencia sobre cómo úselo.

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 utilizar la búsqueda de Spotlight para encontrarlo.

Una vez que lo inicia, aparece una ventana de línea de comandos donde puede escribir comandos. El hecho de que esté escribiendo no » No significa que tenga algo que ver con la codificación, pero para alguien nuevo en los comandos del sistema operativo «anticuados» puede parecer un poco intimidante.

Entonces, el comando se llama touch , y después del comando puede pasar varios parámetros, el único requerido siendo el nombre del archivo. Si escribe lo siguiente, se establecerá la fecha de la última modificación del archivo a la hora actual:

touch filename 

Por supuesto, es posible que primero deba buscar el archivo, lo que podría requieren más comandos para llegar a él. el comando cd o Cambiar directorio ayuda aquí:

cd ~/Desktop/files/PDFs touch filename 

O simplemente puede agregar el ruta al archivo como parte del comando:

touch ~/Desktop/files/PDFs/filename 

Un uso más avanzado del comando táctil le permite especificar la hora que desea establecer, en lugar de usar 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 establecen la hora para que sea la hora de otro archivo, algunos lo establecen para retroceder o avanzar en el tiempo en una cantidad X ( ver aquí para obtener más detalles) , por ejemplo:

touch -d "1 May 2005 10:22" file8 

Lo siguiente es de esta página , que también 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 de fecha de creación solo si su archivo se creó después de la fecha en que ingresa. Esto se debe a que un archivo no se puede modificar antes de que se haya creado. Si se crea antes de la fecha establecida, solo se cambiará la fecha de modificación.

¿Cómo cambiar el atributo de fecha de creación de un archivo?

  1. Abra la aplicación Terminal (/Applications/Utilities/Terminal.app) o, si lo prefiere, use iTerm.

  2. Escriba esto en la Terminal (sin presionar enter / return) insertando la fecha en el formato de YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Abra una ventana del Finder y ubique el archivo que desea modificar y arrástrelo y suéltelo en la ventana de Terminal, luego insertará la ubicación del archivo usando terminología de línea de comando. Aquí hay un ejemplo de lo que se debe escribir en la Terminal en este punto:

    touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg 

    201212211111 en el ejemplo anterior representan “21 de diciembre de 2012 11:11 a.m.

Comentarios

  • Pero touch modifica la fecha de modificación, no la fecha de creación del archivo.
  • Puede hacer ambas cosas. Depende de los parámetros.
  • El uso de touch con los parámetros que proporcionó anteriormente cambió la modificación, pero no las fechas de creación de mi archivo de prueba.
  • @Daniel Probablemente obtuviste tu respuesta, pero en aras de la integridad touch no modifica la fecha de creación según 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 se puede modificar antes de crearse .
  • Acabo de probar esto en Sierra y el toque definitivamente no cambia la creation fecha. Pude cambiar access y modified fechas a una » fecha en el pasado «, pero no modificó la fecha de creación. Consulte la página de manual para ver si hay tacto, no menciona la fecha de creación. Sistema de archivos: Mac OS Extended (con registro, cifrado). Usar SetFile -d "$(GetFileInfo -m test.txt)" file.txt funcionó perfectamente.

Responder

Grandes sugerencias aquí , en particular el último (de Lauri Ranta, contestado el 21 de agosto a las 15:21). ¡Perfekt!

Ahora uso un flujo de trabajo de Automator simple para cambiar varios archivos por lotes:

  1. Obtener elementos de Finder seleccionados
  2. Ejecutar el script de Shell, «Pasar entrada : como argumentos «

El script de shell es:

for f in "$@" do SetFile -d "$(GetFileInfo -m "$f")" "$f" done 

Esto funciona como un encanto.

Respuesta

La forma más fácil que encontré fue crear una nueva carpeta, copiar todas las subcarpetas de la carpeta en gris en la nueva carpeta, y listo, la nueva carpeta no está atenuada. Incluso puedes hacer esto en el buscador.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *