我一直在尋找有關如何在 Mac OS X 上批量重命名照片的解決方案 我找到了很多解決方案,但如果文件中包含空格或我想添加空格,則大多數解決方案都不起作用在文件名中。
例如我發現這個腳本:
for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done
只要我不在最終檔名中添加空格,該腳本就可以工作(我確實希望在文件名中添加空格,因為過去 3 年我一直在 Windows 上用空格重命名我的文件)。如果檔案本身有空格,它也會中斷。因此,如果我有一張名為“Hello World.jpg”的照片,它將不會被處理。
請問有人有解決辦法嗎?最好不需要任何額外的軟體(我只是希望每次切換機器時都能複製/貼上該腳本)。
謝謝你!
答案1
您需要在替換中使用引號:
for i in *.jpg; do newname="$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- "$i")"; mv -- "$i" "$newname.jpg"; done
它需要用雙引號來允許變數和$()
擴展。
答案2
$i
通常用替換就足夠了"$i"
。