Blasco Asked: 2018-01-11 01:31:21 +0800 CST2018-01-11 01:31:21 +0800 CST 2018-01-11 01:31:21 +0800 CST 如何替换所有文件夹和文件名中的字符串[重复] 772 如何用不同的字符串递归替换所有文件夹和文件名中的字符串?我正在运行 Red Hat 6,我可以通过以下方式找到它们: find . -name \*string\* 我已经设法为文件中的字符串做到这一点: find . -type f -exec sed -i 's/string1/string2/g' {} + 但是我如何以类似的方式替换所有文件名? shell rename 3 个回答 Voted Ganesh_ 2018-01-11T04:46:29+08:002018-01-11T04:46:29+08:00 for您可以使用和mv命令替换所有文件名。 在这里,我将所有以abc名称开头的文本文件替换为xyz for file in abc*.txt; do mv -v "$file" "${file/abc/xyz}"; done 以下命令将递归替换所有文件夹中的文件 for file in `find . -type f -name 'abc*.txt'`; do mv -v "$file" "${file/abc/xyz}"; done Best Answer PesaThe 2018-01-11T10:12:49+08:002018-01-11T10:12:49+08:00 使用find和rename: find . -type f -exec rename 's/string1/string2/g' {} + Stéphane Chazelas 2018-01-11T02:30:03+08:002018-01-11T02:30:03+08:00 使用zsh's更容易zmv: autoload zmv # best in ~/.zshrc zmv '(**/)(*string1*)' '$1${2//string1/string2}' 改成 zmv '(**/)(*string1*)(#qD)' '$1${2//string1/string2}' 如果您还想重命名隐藏文件或隐藏目录中的文件。
for
您可以使用和mv
命令替换所有文件名。在这里,我将所有以
abc
名称开头的文本文件替换为xyz
以下命令将递归替换所有文件夹中的文件
使用
find
和rename
:使用
zsh
's更容易zmv
:改成
如果您还想重命名隐藏文件或隐藏目录中的文件。