一尘不染

在ubuntu / bash下递归重命名文件和目录

linux

我想将所有包含“特殊”一词的文件和目录重命名为“常规”。它应保持区分大小写,以使“特殊”不会变成“常规”。

如何在bash中递归执行此操作?


阅读 326

收藏
2020-06-02

共1个答案

一尘不染

尝试执行此操作(要求bash --version> = 4):

shopt -s globstar
rename -n 's/special/regular/' **

-n测试正常后,卸下开关

警告 还有其他相同名称的工具可能无法执行此操作,因此请小心。

如果运行以下命令(GNU

$ file "$(readlink -f "$(type -p rename)")"

结果是

.../rename: Perl script, ASCII text executable

并且不包含:

ELF

那么这似乎是正确的工具=)

如果不是,则将其设为默认值(通常已经是这种情况),Debian并派生为Ubuntu

$ sudo update-alternatives --set rename /path/to/rename

(替换/path/to/renameperl's rename命令的路径。


如果您没有此命令,请搜索软件包管理器以进行安装或手动执行


最后但并非最不重要的一点是,该工具最初是由Perl的父亲Larry Wall编写的。

2020-06-02