bash - 重命名子文件夹中的所有文件 - 替换文件名中的字符串

标签 bash rename directory subdirectory

我想重命名文件夹及其子文件夹中的所有文件。

我需要将字符串 HEX20 更改为字符串 HEX8。 有些文件名有其他数字,因此我不能简单地将 20 更改为 8

完整路径的示例是:

\\FRDS01006\z188018\FEM\Linear\HEX20\3HEX20\3HEX20.bof

我想对文件夹名称进行相同的替换。

最佳答案

这个怎么样:

find . -name "*HEX20*" -exec rename HEX20 HEX8 '{}' +

这将递归搜索当前目录和任何子目录以匹配 HEX20。 (省略了 -type f 标志,因为提问者想要更改除文件之外的目录名称。)然后它将构建一个长的 rename 命令并最终调用它。这种类型的构造可能比使用 sed 构建一系列命令然后逐个执行它们更简单。

关于bash - 重命名子文件夹中的所有文件 - 替换文件名中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477459/

相关文章:

regex - 如何使用 sed 替换正则表达式捕获组?

Python:汇总保存在不同文件夹中的 xlsx 文件的值

powershell - 如何在导出到CSV文件时重命名属性?

java - 如何在 BlobStore (Java) 中设置文件名属性?

python - 如何将目录树输出为 HTML?

c - 将 makefile 输出获取到上面的目录

mysql - bash/mysql 更新行计数中的字符串提取

python - 如何在 Linux 中只处理新的(未处理的)文件

linux - 尝试理解简单的 Linux 代码

linux - 删除 bash linux 文件夹上的变量扩展名