1 votos

Copiar por lotes la hora de creación y la fecha de modificación de los archivos con OSX

En primer lugar, he hecho la misma pregunta en stack overflow, pero no estoy seguro de que esté bien allí. Por eso he decidido publicarla aquí también.

e está dando problemas al intentar copiar la fecha de creación y modificación de unos archivos a otros.
He convertido algunos archivos MXF a MOV, pero lamentablemente los nuevos archivos MOV no tienen la misma fecha de creación.
Ahora he buscado por ahí preguntas similares y he encontrado diferentes respuestas, pero esta parece ser la más sencilla:

    #!/bin/bash
    for f in *.MXF; do
     touch -r "$f" "${f%MXF}mov"
    done

Lamentablemente no me funciona, ni con Terminal ni con Automator.
He guardado el código con TextEdit. En Terminal ejecuté chmod+x para hacer el archivo ejecutable y lo puse en la carpeta donde están mis MXFs y movs.

Pero me sale el siguiente error:
tacto: *.MXF: No hay tal archivo o directorio
También he probado con mxf en lugar de MXF.

Esta es la salida de ls- l de la carpeta de pruebas

-rwxrwxrwx  1 username  staff  258458160  5 Jan  2014 570_0301.MXF
-rwxrwxrwx  1 username  staff  241431870  5 Jan  2014 570_0301.mov
-rwxrwxrwx  1 username  staff  974595120  5 Jan  2014 570_0306.MXF
-rwxrwxrwx  1 username  staff  911745994  5 Jan  2014 570_0306.mov
-rwxrwxrwx  1 username  staff  667679280  5 Jan  2014 570_0308.MXF
-rwxrwxrwx  1 username  staff  624468526  5 Jan  2014 570_0308.mov

Como he conseguido copiar la fecha de modificación parece que todos los archivos ya tienen la misma fecha, pero esto no cubre la fecha de creación.

¿Tal vez alguien pueda ayudarme? ¿Cambiará la fecha de modificación y de creación? Porque ambas son importantes...
¡Muchas gracias de antemano y todo lo mejor!


EDITAR: Tengo el script funcionando gracias a user3439894.
Pero sigue sin actualizar la fecha de creación...
MXF: creado el 05.01.2014 06:49, modificado el 05.01.2014 06:50
mov: creado 23.06.2016 05:34, modificado 05.01.2014 06:50

¿Hay alguna manera de corregir esto?

5voto

user3439894 Puntos 5883

Ya que esto no te funciona te voy a sugerir que hagas lo que sugirió fd0 y uses SetFile . Se utilizará junto con GetFileInfo que forman parte de las herramientas de línea de comandos para Xcode.

No es necesario instalar el Xcode.app que ocupa ~3,80 GB, sólo ~160 MB para Command Line Tools for Xcode.

En la terminal: xcode-select --install

Ver Cómo instalar herramientas de línea de comandos en OS X Mavericks y Yosemite (sin Xcode) que también es para OS X El Capitan.

Aquí hay un bash script para usar con SetFile y GetFileInfo :

#!/bin/bash

for f in *; do

    if [[ -f $f ]] && [[ ${f##*.} == MXF ]] && [[ -f ${f%.*}.mov ]]; then

        cDate="$(GetFileInfo -d "$f")"
        mDate="$(GetFileInfo -m "$f")"

        SetFile -d "$cDate" -m "$mDate" "${f%.*}.mov"

    fi

done

enter image description here

-1voto

mr_squall Puntos 1

Si sólo necesitas copiar la fecha de modificación a la fecha de creación en los mismos archivos puedes usar mi script modificado:

#!/bin/bash

for f in *; do

    cDate="$(GetFileInfo -d "$f")"
    mDate="$(GetFileInfo -m "$f")"

    SetFile -d "$mDate" "$f"

done

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