1 votes

Batch copier la date de création et la date de modification des fichiers en utilisant OSX

Tout d'abord, j'ai posé la même question sur stack overflow, mais je ne suis pas sûr que c'est le bon endroit. C'est pourquoi j'ai décidé de le poster ici aussi.

Je rencontre des difficultés à copier la date de création et de modification de certains fichiers vers d'autres fichiers.

J'ai converti certains fichiers MXF en MOV, mais malheureusement les nouveaux fichiers MOV n'ont pas la même date de création.
J'ai donc cherché des questions similaires et trouvé différentes réponses, mais celle-ci semble être la plus simple :

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

Malheureusement, cela ne fonctionne pas pour moi, ni avec le Terminal ni avec Automator.
J'ai enregistré le code avec TextEdit. Dans le Terminal, j'ai exécuté chmod +x pour rendre le fichier exécutable et je l'ai placé dans le dossier où se trouvent mes MXF et mov.

Mais je reçois simplement l'erreur suivante :
touch: *.MXF: Aucun fichier ou dossier de ce type
J'ai également essayé mxf à la place de MXF.

Voici la sortie de ls -l du dossier de test :

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

Étant donné que j'ai réussi à copier la date de modification, il semble que tous les fichiers aient déjà la même date, mais cela ne concerne pas la date de création.

Quelqu'un pourrait-il m'aider ? Est-ce que cela changera la date de modification et la date de création ? Car les deux sont importants...
Je vous remercie beaucoup d'avance et tout le meilleur !


EDIT : J'ai réussi à faire fonctionner le script grâce à l'utilisateur3439894.
Mais cela ne met toujours pas à jour la date de création...
MXF : créé le 05.01.2014 à 06h49, modifié le 05.01.2014 à 06h50
mov : créé le 23.06.2016 à 05h34, modifié le 05.01.2014 à 06h50

Y a-t-il un moyen de corriger cela ?

5voto

user3439894 Points 52496

Étant donné que cela ne fonctionne pas pour vous, je vous suggère de faire comme l'a suggéré fd0 et d'utiliser SetFile. Cela sera utilisé en conjonction avec GetFileInfo, tous deux faisant partie des Outils en ligne de commande pour Xcode.

Vous n'avez pas besoin d'installer Xcode.app qui fait environ 3,80 Go, juste environ 160 Mo pour les Outils en ligne de commande pour Xcode.

Dans le Terminal : xcode-select --install

Voir Comment installer les outils en ligne de commande dans OS X Mavericks et Yosemite (sans Xcode), qui s'applique aussi à OS X El Capitan.

Voici un script bash à utiliser avec SetFile et 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

saisissez ici la description de l'image

-1voto

mr_squall Points 99

Si vous avez juste besoin de copier la date de modification vers la date de création sur les mêmes fichiers, vous pouvez utiliser mon script modifié :

#!/bin/bash

for f in *; do

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

    SetFile -d "$mDate" "$f"

done

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X