如何将文件名更改为小写?

时间:2014-01-14 17:01:12

标签: linux bash shell

我需要使用bash脚本将特定目录中所有文件的所有名称更改为小写。此外,我不想更改子目录的名称,因为它是在How to rename all folders and files to lowercase on Linux?中提出的

3 个答案:

答案 0 :(得分:2)

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

我不确定哪个版本的bash引入了${var,,}扩展。

答案 1 :(得分:1)

试试这个:

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

它将回显您需要运行的命令。首先检查它们,然后你可以删除回声并再次运行它来进行实际的移动

答案 2 :(得分: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