실수로 확장자가 .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
남자 이름 바꾸기 추가 정보