批次將JPG改成jpg問題 - Linux

Table of Contents


安安,關於這個問題我上網找過

有找到方法如下:

for file in *.JPG;do mv $file ${file%.*}.jpg;done

但這個方式只能將單一目錄下的檔案掃過

所以我轉為找find的方法希望可以做到子目錄都可以批次更改

按照網路上的教學 寫出來應該如下:

find . -name "*.JPG" -exec mv $file ${file%.*}.jpg \;

不過一直沒辦法成功 會跳出

============================================================
BusyBox v1.16.1 (2011-02-25 19:06:21 CST) multi-call binary.

Usage: mv [OPTIONS] SOURCE DEST
or: mv [OPTIONS] SOURCE... DIRECTORY

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY

Options:
-f Don't prompt before overwriting
-i Interactive, prompt before overwrite

=============================================================

但我把-f 跟 -i都加在 mv後面試過 還是沒有辦法成功

所以上來po文 可否麻煩大大們指點迷津

希望不要寫成shell 直接一行解決的方法 不知道這樣找的方向對不對

先謝謝了:)

--

All Comments

Necoo avatarNecoo2011-03-16
find . -name '*.JPG' -exec rename JPG jpg {} \;
Andy avatarAndy2011-03-17
抱歉 這個linux是nas原生的 所以沒有rename的函式@@
Damian avatarDamian2011-03-19
只能用mv的狀況下可以解決嗎?
Damian avatarDamian2011-03-19
將原式改成 for file in $(ls *.jpg) do ..應該可以喔!^^
Isla avatarIsla2011-03-19
試過了 不行QQ 還是謝謝樓上
Damian avatarDamian2011-03-19
rename JPG jpg *
Michael avatarMichael2011-03-20
謝謝樓上 不過我沒有rename指令 bin是busybox 1.6所建的@@
Agatha avatarAgatha2011-03-23
你的問題在於busybox不接受指定格式,你先echo看看正確否
指令不正確busybox就會吐上面那個訊息
Hedda avatarHedda2011-03-27
for既然能轉當前目錄,你可以把他變成你要的目錄
John avatarJohn2011-04-01
echo指令明天來試試看@@
Ida avatarIda2011-04-06
for能轉單一目錄 不過想要recursive就是弄不出來:(