尝试重命名项目所有目录中的多个文件名

尝试重命名项目所有目录中的多个文件名

我最近一直在尝试更改项目中的名称,但在正确完成任务时遇到了一些麻烦。

我的问题是当我尝试使用

find . -type f -print0 | xargs -0 sed -i 's/volix/sergio/g' find . -type f -print0 | xargs -0 sed -i 's/Volix/Sergio/g' find . -type f -print0 | xargs -0 sed -i 's/VOLIX/SERGIO/g' find . -type f -print0 | xargs -0 sed -i 's/VLX/SRG/g'

这将查找并替换我尝试更改的文件中的所有名称,但文件夹的名称仍与名称更改之前的名称相同。

编辑:我想将所有出现的“volix”替换为“sergio”,而不干扰文件名的其余部分,所以我想像这样替换

  • volix-res.rc
  • volix.qrc
  • volix-tx.cpp
  • volix_logo_horizo​​ntal.png
  • volix_logo_horizo​​ntal2x.png
  • 单位_tmvolix.png
  • 单位_tvolix.png

到 -

  • 塞尔吉奥-res.rc
  • 塞尔吉奥.qrc
  • 塞尔吉奥-TX.cpp
  • sergio_logo_horizo​​ntal.png
  • sergio_logo_horizo​​ntal2x.png
  • 单位_tmsergio.png
  • 单位_tsergio.png

还有更多名为“volix”的文件,我想知道如何一次更改所有这些文件,而不是手动逐一重命名?

答案1

find . type -f只查找文件。

你需要的是:

find -type d -name current_name -exec mv {} desired_name \; 

这将递归地查找目录并将它们重命名为您想要的名称。

答案2

尝试这个:

find . -type f -print0 |
  parallel -0 mv {} '{= s/volix/sergio/g; s/Volix/Sergio/g; s/VOLIX/SERGIO/g; s/VLX/SRG/g =}'

相关内容