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