![이름 바꾸기를 사용하지 않고 영화 파일 이름에서 날짜를 반복적으로 제거합니다.](https://linux55.com/image/199656/%EC%9D%B4%EB%A6%84%20%EB%B0%94%EA%BE%B8%EA%B8%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%98%81%ED%99%94%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%EC%84%9C%20%EB%82%A0%EC%A7%9C%EB%A5%BC%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
"Gone with the Wind"와 같은 별도의 디렉터리와 "Gone with the Wind(1939).mp4"와 같은 파일 이름을 포함하는 "Movies" 디렉터리가 있습니다.
"(1939)" 부분을 제거하여 이름을 바꾸고 싶으므로 결과는 "Gone with the Wind.mp4"입니다.
osx에서는 다음과 같이 이름을 바꾸면 됩니다.
rename 's/ \(.*?\)//' *.mp4
이름 바꾸기를 사용하지 않고 이 작업을 수행하는 방법은 무엇입니까?
답변1
이 rename
명령은 파일을 복사하지 않습니다.
touch 'Gone with the Wind (1939).mp4'
ls -li Gone*.mp4
129371 -rw-r--r-- 1 roaima roaima 0 Dec 14 14:33 Gone with the Wind (1939).mp4
rename 's/\s*\(\d{4}\)//' Gone*.mp4
ls -li Gone*.mp4
129371 -rw-r--r-- 1 roaima roaima 0 Dec 14 14:33 Gone with the Wind.mp4
inode 번호는 동일하게 유지되며 이는 여전히 동일한 파일임을 나타냅니다.
답변2
Macos에 있는 것으로 보이므로 쉘이 가장 가능성이 높 zsh
으므로 다음을 수행할 수 있어야 합니다.
autoload -Uz zmv
zmv -n '(**/)(*)[[:space:]]##\(<1800-2022>\)(.mp4)' '$1$2$3'
(다음 -n
을 위해 제거시운전원하는 경우 4자리 숫자를 숫자 범위 대신 으로 <1800-2022>
바꿀 수 있습니다.[0-9](#c4)
사용하는 대신 rename
.
zmv
, perl
좋다rename
이름 바꾸기파일을 복사하지 않지만 perl 함수를 rename
사용하여 아래 시스템 호출을 호출 하는 경우 소스와 대상이 동일한 파일 시스템에 있는 한 호출될 함수 만 호출됩니다.rename()
rename()
zmv
mv
rename()
-C
¹ 대신에 through 옵션을 사용할 수 있습니다zmv
cp
mv