如何在 Mac OS X 中批次重命名檔案?

如何在 Mac OS X 中批次重命名檔案?

我有一堆名稱為 MOV001.mpg、MOV002.mpg 等的檔案。

我怎麼能重新命名它們,使它們變成 2012 08 05 13 45 33 MOV001.mpg、2012 09 02 23 45 07 MOV002.mpg 等?

換句話說,如何從重新命名的檔案中提取日期和時間資訊?

預先非常感謝您。

答案1

未經測試:

for f in *.mpg; do
  mv "$f" "$(stat -f "%m" -t "%Y %m %d %H %M %S" "$f") $f"
done

stat -f "%m"應產生文件的最後修改日期,-t "%Y %m %d %H %M %S"並應根據您的要求格式化日期。

答案2

原始問題指定產生的檔案也以檔案副檔名結尾。若要以可移植的方式執行此操作,請在 bash 中從/path/to/file.extwithbuilt -in中取得擴展${f##*.},從而產生一行:

for f in *.FOO; do mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}" ; done

和一個程式碼區塊

for f in *.FOO ; do
    mv "$f" "$( /usr/bin/stat -f "%Sm" -t "%Y%m%d_%H%M%S" ).${f##*.}"
done

因此,當您更改 FOO(例如從 *.mpg 到 *.png)時,輸出檔案名稱是正常的。

相關內容