수천 개의 파일 이름을 효율적으로 바꾸는 방법은 무엇입니까?

수천 개의 파일 이름을 효율적으로 바꾸는 방법은 무엇입니까?

내 Fedora PC에 많은 음악 파일(말 그대로 수천 개의 파일)이 있고 두 가지 규칙을 사용하여 이름을 바꾸고 싶습니다.

  1. 각 공백은 문자 _(밑줄)로 대체되어야 하며,
  2. 각 대문자는 해당 소문자로 바뀌어야 합니다.

예를 들어 노래의 파일 이름유리달 아래,이것은 내 컴퓨터에 이름이 붙은 앨범의 여섯 번째 트랙입니다. 06 Under A Glass Moon.mp3이름이 로 지정되었으면 좋겠습니다 06_under_a_glass_moon.mp3.

내 질문은 : 할 수 있습니까?모든내 컬렉션의 노래/파일, 수동 작업이 필요하지 않습니다.

노트:명확히 말하면 노래의 메타데이터를 편집할 필요는 없습니다. 이를 위해 EasyTAG를 사용합니다. 내가 해야 할 일은 노래의 파일명을 바꾸는 것뿐이었다.


고쳐 쓰다:이 질문이 꽤 오래전부터 있었고 일부 사람들이 이에 답변했다는 것을 알고 있지만 EasyTAG를 사용하여 더 쉬운 솔루션을 찾았습니다. 이를 수행하는 방법은 다음과 같습니다.

View --> Scanner Mode --> Process Fields. 

여기에서 특정 문자를 다른 문자로 바꾸도록 선택할 수 있으며(""를 "_"로 바꾸는 것에 국한되지 않음) 소문자 또는 대문자 등을 선택할 수 있습니다. 또한 변경할 필드를 결정할 수도 있습니다. 매우 유용한 기능입니다.

또한, 답변해주신 분들께 감사드립니다. 귀하의 도움은 매우 도움이 됩니다.

답변1

당신은 설치할 수 있습니다펄 스크립트rename. 그런 다음 다음을 시도하십시오.

$ rename -n 's/[A-Z]/lc($&)/ge; s/\s/_/g' files*

-n(테스트가 정상이면 스위치를 제거하십시오)


Fedora에서는 이 작업 rename을 수행할 수 없습니다. 일부 다른 배포판은 기본적으로 Perl 배포판과 함께 제공됩니다. 다음 명령을 실행하면 ( GNU)

$ file "$(readlink -f "$(type -p rename)")"

이런 결과가 나왔어요

.../rename: Perl script, ASCII text executable

다음은 포함되지 않습니다:

ELF

그렇다면 이것이 올바른 도구인 것 같습니다 =)

그렇지 않은 경우 예를 들어 Fedora에서는수동 설치.

마지막으로 이 도구는 원래 Perl의 아버지인 Larry Wall이 작성했습니다.

답변2

같은 것을 사용하세요rename명령은 @sputnick이며 다음과 결합됩니다.find:

find /path/to/collection -type f -execdir rename -n '$_ = lc;y/ /-/' {} +
  • $_ = lc입력을 소문자로 변환합니다. y/ /-/공백을 -(와 유사 tr)로 변경합니다.
  • -execdir파일 디렉터리에서 명령을 실행하여 {}해당 ./name-of-file디렉터리가 .

관련 정보