Dav*_*ean 0 linux shell bash rename mv
我有一些文件和文件夹都是大写的,我想将它们重命名为对应的小写字母。在 Linux 系统上用 bash 执行此操作的最佳方法是什么?
作为一个例子,我可能有:
.
|-- FOLDER0
| |-- SUBFOLDERA
| `-- SUBFOLDERB
`-- FOLDER1
`-- AFILE.TXT
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
.
|-- folder0
| |-- subfoldera
| `-- subfolderb
`-- folder1
`-- afile.txt
Run Code Online (Sandbox Code Playgroud)
我可能可以编写一个深度优先递归脚本来执行此操作(深度优先以确保文件和子文件夹在其父文件夹之前重命名),但我想知道是否有更好的方法。rename可能有用,但它似乎不支持递归。
小智 5
find . -depth -print0 | xargs -0 rename -n '$_ = lc $_'
Run Code Online (Sandbox Code Playgroud)
一旦你确定它正在做你想做的事,就取出 -n 标志。