将所有文件名转换为小写

将所有文件名转换为小写

可能重复:
如何在 bash 下递归更改文件和文件夹的大小写

如何使用命令或批处理脚本将目录及其子目录中的所有文件名转换为小写?

答案1

如果您还想重命名文件夹,请使用此脚本

答案2

首先,tr可用于翻译文本。 tr [:upper:] [:lower:]将把标准输入中的所有大写字符转换为标准输出中的小写字符。因此,只需将其放入脚本中即可……

在 `find . -name [whatever] -print` 中查找 $FILE
    执行 mv $FILE `echo $FILE | tr [:upper:] [:lower:]`
完毕

这非常丑陋,如果文件名已经是小写,它会吐出错误。(因为你试图将它移动到自身上)但它应该能完成工作。一定要修改发布清理版本的人。

答案3

这是Christopher答案的轻微变化,

查找 . -type f > files.txt
IFS="
“;
对于 $(cat files.txt) 中的 f;
    mv $f $(echo $f | tr [:upper:][:lower:])
完毕

如果你想在目录而不是文件上使用,

查找 . -type d > dirs.txt

相关内容