2014-01-14 27 views

回答

2
for file in *; do 
    [[ -f "$file" ]] && mv "$file" "${file,,}" 2>/dev/null 
done 

我不知道什麼版本的bash引入了${var,,}擴展。

+1

[版本說明](http://tiswww.case.edu/php/chet/bash/NEWS)將其作爲版本4.0的項目hh。 – chepner

0

建議試試這個:

for file in * ; do lower=$(echo $file | tr A-Z a-z) && [[ $lower != $file ]] && echo mv $file $lower ;done 

它會響應你需要運行的命令。檢查他們的第一,那麼你就可以去除回聲並再次運行它做實際的移動

0

嘗試以下操作:

for i in $(find . -maxdepth 1 -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done 

[1]refer

+2

這不是一種安全的方式來遍歷文件:如果您找到一個帶有空格的文件名,for循環將不會將其視爲單個單詞。 –

+0

是......感謝隊友指出了。 –

相關問題