我最近一直在尝试更改项目中的名称,但在正确完成任务时遇到了一些麻烦。
我的问题是当我尝试使用
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_horizontal.png
- volix_logo_horizontal2x.png
- 单位_tmvolix.png
- 单位_tvolix.png
到 -
- 塞尔吉奥-res.rc
- 塞尔吉奥.qrc
- 塞尔吉奥-TX.cpp
- sergio_logo_horizontal.png
- sergio_logo_horizontal2x.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 =}'