위치가 잘못된 파일 확장자 변경

위치가 잘못된 파일 확장자 변경

실수로 확장자가 .mp4. 다행히 원래 확장자는 파일 이름에 보존되었습니다(예 simon.says.nfo.mp4: ).

지금 이 파일에서 mp4 부분을 어떻게 제거할 수 있습니까?

제가 가지고 있는 명명 시스템 때문에 찾기만 할 수는 없고 *.*.mp4찾기/바꾸기 조합을 사용하는 것이 더 쉬울 것입니다.

답변1

.mp4현재 디렉터리에 있는 해당 확장자를 가진 모든 파일에서 확장자를 제거합니다 ..nfo.mp4

for fname in ./*.nfo.mp4; do
  newfname="$( basename "$fname" .mp4 )"
  mv -i "$fname" "$newfname"
done

basename유틸리티는 경로를 제거하고(파일 이름만 남김) 접미사를 한 번에 제거합니다. 현재 디렉터리에만 관심이 있으므로 다시 추가하지 않고 여기에서 경로를 삭제할 수 있습니다. 매개변수 확장을 사용하여 newfname="${fname%.mp4}"동일한 효과를 얻을 수 있습니다 . 접미사는 제거되지만 .mp4초기 경로는 제거되지 않지만 $fname여기서는 문제가 되지 않습니다.

저는 이것을 사용하여 기존 파일을 덮어쓰는 작업을 mv -i수동으로 확인할 수 있습니다 .mv

테스트 목적으로 다음은 무슨 일이 일어날지 인쇄합니다.

for fname in ./*.nfo.mp4; do
  newfname="$( basename "$fname" .mp4 )"
  printf 'Want to rename "%s" into "%s"\n' "$fname" "$newfname"
  ## mv -i "$fname" "$newfname"
done

답변2

"이름 바꾸기"는 필요한 작업을 정확하게 수행하는 유틸리티입니다.

rename 's/.mp4//' *.mp4

남자 이름 바꾸기 추가 정보

관련 정보