将所有文件名转换为小写

可能重复:
如何recursion地更改bash下的文件和文件夹的大小写

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

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

首先, tr可以用来翻译文本。 tr [:upper:] [:lower:]将标准input中的所有大写字符转换为标准输出中的小写字母。 所以这只是一个工作,你的脚本的问题…

 为$ FILE在`查找。  -name [whatever] -print`
    做mv $ FILE`echo $ FILE |  tr [:upper:] [:lower:]`
 DONE 

这是非常丑陋的,如果文件名已经是小写字母,它会吐出错误。 (因为你试图把它移到自己身上),但它应该做的工作。 一定要修改任何post清理版本。

Christopher的回答来说,这是一个轻微的变化,

找 。  -type f> files.txt
 IFS =”
 “;
 for $(cat files.txt);
做
     mv $ f $(echo $ f | tr [:upper:] [:lower:])
 DONE

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

找 。  -type d> dirs.txt