使用Linux递归更改文件名?

时间:2017-08-12 18:54:21

标签: linux shell scripting

我有一个目录和文件看起来像这样

/Folder/A/12 3ER This.docx
/Folder/A/12 3ER Namespace.docx
/Folder/A/12 QW Blah.docx
/Folder/A/12 QW BlahBlah.docx
/Folder/B/12 3ER Annoying.docx
/Folder/B/12 3ER Were.docx
/Folder/B/12 QW Stack.docx
/Folder/B/12 QW Overlow.docx
...

我想将包含 3ER 的所有文件重命名为_My_

所以目录和文件看起来应该是

/Folder/A/12_My_This.docx
/Folder/A/12_My_Namespace.docx
/Folder/A/12 QW Blah.docx
/Folder/A/12 QW BlahBlah.docx
/Folder/B/12_My_Annoying.docx
/Folder/B/12_My_Were.docx
/Folder/B/12 QW Stack.docx
/Folder/B/12 QW Overlow.docx
...

如何使用Linux执行此操作?

1 个答案:

答案 0 :(得分:1)

find . -name '* 3ER *' -print0 | while IFS= read -r -d '' filename; do
  mv -- "$filename" "${filename// 3ER /_My_}"
done