Comment puis-je définir la dernière date de modification du file après l'utilisation de HandbrakeCLI pour convertir un file?

Exécutez ceci sur OS X Lion.

Je suis en train de convertir plusieurs centaines de films ménagers à l'aide de CLAV Handbrake. Je voudrais définir la dernière date de modification et la date créée pour ce file original.

J'utilise le script suivant:

for f in "$@"; do base=${f%.*} extension=${f##*.} newfile=${base}.m4v echo Converting \"$f\" to \"$newfile\" /Applications/HandBrakeCLI -e x264 -b 4000 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 --crop 0:0:0:0 -x level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:parsing=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile" done 

J'exécute ce script en exécutant:

 find . -name "*.avi" -print0 | xargs -0 hbapple.sh 

Est-ce que quelqu'un a des idées sur la façon dont je peux définir le dernier time de création et de modification du file original à celui du nouveau file $?

Si je ne comprends pas comment faire, je vais avoir du mal à savoir quand ces videos ont été créées.

J'apprécie toute aide ou pointeur

La date de modification peut être définie avec

 touch -m -t 201207010742 whatever.m4v 

AFAIK la date de création / naissance ne peut pas être modifiée.

Pour définir la date de modification en fonction de la date de création d'un autre file, vous pouvez utiliser la stat :

 touch -m -t $(stat -f %SB -t %Y%m%d%H%M original-file.mov) new-file-m4v 

Pour appliquer cela à votre script, utilisez quelque chose comme

 for f in "$@" do olddate=$(stat -f %SB -t %Y%m%d%H%M "$f") base=${f%.*} extension=${f##*.} newfile=${base}.m4v echo Converting \"$f\" to \"$newfile\" /Applications/HandBrakeCLI -e x264 -b 4000 -a 1 -E faac -B 160 -R 48 -6 dpl2 -f mp4 --crop 0:0:0:0 -x level=40:ref=2:mixed-refs:bframes=3:weightb:subme=9:direct=auto:b-pyramid:me=umh:parsing=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile" touch -m -t $olddate "$newfile" done