Linux: how to rename all files in a directory to uppercase?
本问题已经有最佳答案,请猛点这里访问。
包括分机。例如file.txt-->file.txt
如果有人能指点我的方向,我会感激的:)
这里只是一些随机文本,因为字符计数太低,无法进行stackoverflow…
最初的解决方案是:
1 | rename 'y/a-z/A-Z/' * |
它获取当前目录中的每个文件/目录,并按其相应的大写版本更改范围A-Z中的每个字符。
要递归执行,但只在文件上执行,可以使用
1 | find . -type f -execdir rename 'y/a-z/A-Z/' {} \; |
该命令只搜索文件,并对找到该文件的目录(
使用bash很容易:
1 | for f in *; do mv"$f""${f^^}"; done |
扩展
在另一个shell中,使用
1 | for f in *; do mv"$f""$(echo"$f" | tr '[:lower:]' '[:upper:]')"; done |
我建议这样做:
1 | ls|sed 's/\(.*\)/mv"\1""\U\1"/' | sh |
我喜欢这样使用SED,因为在将其导入sh之前很容易检查输出(在第一步中删除
使用Perl
1 | perl -e 'for (glob"*.txt" ){ rename $_,uc($_)}' |