1 votos

Comando por lotes para cambiar la fecha de creación de cada archivo para que coincida con la información del nombre del archivo.

Tengo una carpeta con varios cientos de archivos de vídeo. Todos los nombres de los archivos tienen este formato:

2011-08-27 11.18.00

Lamentablemente, la "Fecha de creación" de cada archivo es la fecha en la que se convirtió (una fecha de 2014), no la fecha en la que se tomó originalmente (especificada en el nombre del archivo).

He descubierto que el tocar -t se puede utilizar para cambiar la fecha de creación de un único archivo.

enter image description here

Abajo: archivo en el que he cambiado con éxito la Fecha de Creación (con el comando anterior) y archivo para el que la Fecha de Creación sigue siendo incorrecta.

enter image description here

¿Puede alguien ayudar con el código de terminal que extraer YYYYYMMDDhhmm información de cada nombre de archivo y utilizarlo para la para el tocar -t para ese archivo, en una operación por lotes?

Me gustaría que la fecha / hora de creación sea correcta para que cuando importe a mi biblioteca cada archivo esté en el lugar correcto en la línea de tiempo.

Mac OS: El Capitan 10.11.5

Versión del terminal: 2.6.1

Gracias a todos.

0voto

  • terminal abierta

  • tipo cd (incluido el espacio al final) y arrastre la carpeta que contiene los archivos a renombrar en la ventana Terminal (la carpeta es probablemente Desktop/PRIMARYVIDEOS por lo que el comando debería tener el siguiente aspecto cd /Users/Andrew/Desktop/PRIMARYVIDEOS )

  • pulse Intro

  • escriba (o copie/pegue)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); echo touch -t $t "$f"; done
  • pulse Intro

  • si (y sólo si) esto da como resultado una lista de touch comandos que parezcan correctos, escriba (o copie/pegue)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); touch -t $t "$f"; done
  • pulse Intro

0 votos

@andyp Tiene buena pinta, pruébalo :-)

0 votos

Hola @patrix ¡Ya estamos llegando a algo! Su primer trozo de código en cuatro archivos en una carpeta de prueba terminó con algo como esto para cada uno: touch -t 20110107141300 2011-01-07 14.13.00.mov. Sin embargo, al ejecutar la segunda línea de código después de esto me dio este error para cada uno: touch: out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS] Los nombres de archivo van hasta el segundo, con lo que touch no puede. La parte superior del código no ha recortado la información sobre los segundos, lo que creo que ha causado el error

0 votos

Si sirve de ayuda @patrix, parece que la información de los segundos en cada nombre de archivo es siempre 00 (por lo que cada nombre de archivo siempre se ven así: AAAA-MM-DD hh.mm.00.mov)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X