프로젝트의 모든 디렉터리에서 여러 파일 이름을 바꿔보세요.

프로젝트의 모든 디렉터리에서 여러 파일 이름을 바꿔보세요.

최근에 프로젝트의 이름을 변경하려고 했는데 올바르게 수행하는 데 문제가 있습니다.

내 문제는 내가 사용하려고 할 때입니다.

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 =}'

관련 정보