¿Cómo puedo configurar la Fecha de la última modificación del archivo después de usar HandbrakeCLI para convertir un archivo?

1

Ejecutando esto en OS X Lion.

Estoy convirtiendo por lotes varios cientos de películas caseras usando Handbrake CLI. Me gustaría establecer la última fecha de modificación y la fecha de creación en ese archivo original.

Estoy usando el siguiente script:

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:analyse=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile"    
done

Ejecuto este script ejecutando:

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

¿Alguien tiene alguna idea sobre cómo puedo configurar la última modificación y la hora de creación del archivo original a la del archivo $ new?

Si no descubro cómo hacer esto, me será difícil saber cuándo se crearon realmente estos videos.

Aprecio cualquier ayuda o punteros

    
pregunta Kappy26 26.07.2012 - 16:56

1 respuesta

2

La fecha de modificación se puede establecer con

touch -m -t 201207010742 whatever.m4v

AFAIK la fecha de creación / nacimiento no se puede modificar.

Para configurar la fecha de modificación en función de la fecha de creación de otro archivo, puede usar stat :

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

Para aplicar esto a su script, use algo como

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:analyse=all:no-fast-pskip:filter=-2,-1 -i "$f" -o "$newfile"
     touch -m -t $olddate "$newfile"    
  done
    
respondido por el nohillside 26.07.2012 - 17:30

Lea otras preguntas en las etiquetas