Linux에서 파일 이름 집합을 일괄 이름을 바꾸려면 어떻게해야합니까? 다음과 같이 이름을 바꾸려면 어떻게합니까? pic001.png pic002.png pic003.png 시도

이미지 이름이 다음과 같은 폴더가 있습니다.

pic001-2.png
pic002-2.png
pic003-2.png 

다음과 같이 이름을 바꾸려면 어떻게합니까?

pic001.png
pic002.png
pic003.png 

시도 mv "pic*-2.png" "pic*.png"했지만 오류가 계속 발생합니다.



답변

-2각 파일 이름에서 처음 찾은 파일 이 삭제됩니다 .

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

테스트하려면 줄 앞에 추가 echo하십시오 mv.


답변

적절하게 명명 된 ‘이름 바꾸기’명령이 필요합니다!

다음과 같이 해보십시오 :

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

첫 번째 인수로 펄 정규 표현식을 사용하므로 패턴 일치 및 조작 옵션이 상당히 광범위합니다. 자세한 내용은 rename (1) 매뉴얼 페이지를 참조하십시오.