Bagaimana saya bisa mengatur tanggal modifikasi file terakhir setelah menggunakan HandbrakeCLI untuk mengonversi file?

1

Menjalankan ini di OS X Lion.

Saya batch mengkonversi beberapa ratus film rumah menggunakan Handbrake CLI. aku suka untuk atur tanggal modifikasi terakhir dan tanggal dibuat ke file asli itu.

Saya menggunakan skrip berikut:

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

Saya menjalankan skrip ini dengan menjalankan:

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

Adakah yang memiliki pemikiran tentang bagaimana saya dapat mengatur waktu modifikasi dan pembuatan terakhir dari file asli ke $ newfile?

Jika saya tidak mengetahui cara melakukan ini, saya akan kesulitan mengetahui kapan video ini benar-benar dibuat.

Saya menghargai bantuan atau petunjuk

Kappy26
sumber

Jawaban:

2

Tanggal modifikasi dapat diatur dengan

touch -m -t 201207010742 whatever.m4v

AFAIK tanggal pembuatan / kelahiran tidak dapat dimodifikasi.

Untuk mengatur tanggal modifikasi berdasarkan tanggal pembuatan file lain yang dapat Anda gunakan stat:

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

Untuk menerapkan ini pada skrip Anda, gunakan sesuatu seperti

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
nohillside
sumber
Terima kasih, ada kemungkinan Anda bisa menyarankan bagaimana saya mendapatkan tanggal file asli dan menyimpannya dalam variabel dan kemudian meneruskannya ke perintah sentuh?
Kappy26
Terima kasih, tapi saya rasa ini tidak akan berhasil (seperti yang tertulis). Saya harus membuat stat file terlebih dahulu, kemudian mengonversi, lalu menyentuh file tersebut. Saya tidak terlalu hebat dalam skrip UNIX jadi saya bermain-main dengan cara memodifikasi ini.
Kappy26