최근에 프로젝트의 이름을 변경하려고 했는데 올바르게 수행하는 데 문제가 있습니다.
내 문제는 내가 사용하려고 할 때입니다.
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"로 바꾸고 싶으므로 다음과 같이 바꾸고 싶습니다.
- 볼릭스-res.rc
- 볼릭스.qrc
- 볼릭스-tx.cpp
- volix_logo_horizontal.png
- volix_logo_horizontal2x.png
- 단위_tmvolix.png
- 단위_tvolix.png
도착하다 -
- sergio-res.rc
- sergio.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 =}'