fish 또는 bash의 여러 폴더 이름에서 텍스트 제거

fish 또는 bash의 여러 폴더 이름에서 텍스트 제거

하위 폴더가 있는 폴더가 있습니다. 각 폴더 이름에서 [garbage.com]을 제거하고 싶습니다. ] 뒤에 있는 공백을 제거하고 싶습니다.

현재

$ ls 
 
[ garbage.com ] happy  
[ garbage.com ] Sad   
[ garbage.com ] confused  
dog  
cat  
rat  
.....

스크립트 이후

$ ls  

happy  
Sad  
confused  
dog  
cat  
rat  

find 명령을 시도했지만 []와 공백 때문에 문제가 발생했습니다.

답변1

다음을 시도해 보세요:

rename "s/\[\ garbage\.com\ \]\ //" -n *

-n 옵션은 계획된 변경 사항만 인쇄합니다. 실제로 디렉토리 이름을 바꾸려면 -n을 제거하십시오. 이렇게 하면 디렉터리 이름뿐만 아니라 파일 이름도 변경됩니다.

디렉토리만 이름을 바꾸려면 다음을 사용하십시오.

find . -type d -exec rename -n "s/\[\ garbage\.com\ \]\ //" {} ";"

관련 정보