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

1

Tengo una carpeta con varios cientos de archivos de video. Todos los nombres de los archivos están en este formato:

2011-08-27 11.18.00

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

Descubrí que el operador touch -t se puede usar para cambiar la fecha de creación de un solo archivo.

Abajo:elarchivoenelquehecambiadocorrectamentelaFechadecreación(conelcomandoanterior)yelarchivoparaelquelaFechadecreaciónsiguesiendoincorrecto.

¿Puede alguien ayudarme con el código de terminal que extraiga la información AAAAMMDDhhmm de cada nombre de archivo y la use para la operación touch -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 en mi biblioteca, cada archivo esté en el lugar correcto en la línea de tiempo.

Mac OS: El Capitan 10.11.5

Versión de terminal: 2.6.1

Gracias a todos.

    
pregunta Andy P 09.07.2016 - 21:38

1 respuesta

0
  • abrir Terminal
  • escriba cd (incluido el espacio al final) y arrastre la carpeta que contiene los archivos a los que se va a renombrar en la ventana de la Terminal (la carpeta probablemente sea Desktop/PRIMARYVIDEOS , por lo que el comando debería tener el aspecto cd /Users/Andrew/Desktop/PRIMARYVIDEOS )
  • presiona Enter
  • escriba (o copie / pegue)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); echo touch -t $t "$f"; done
    
  • presiona Enter
  • si (y solo si) esto da como resultado una lista de comandos touch que se ven bien, escriba (o copie / pegue)

    for f in *; do t=$(echo $f | sed -E 's/[-. mov]//g'); touch -t $t "$f"; done
    
  • presiona Enter
respondido por el nohillside 10.07.2016 - 11:58

Lea otras preguntas en las etiquetas