파일 이름에서 URI 인코딩을 제거하는 방법은 무엇입니까?

파일 이름에서 URI 인코딩을 제거하는 방법은 무엇입니까?

이것은 아마도 매우 간단한 질문이라는 것을 알고 있지만 저는 여전히 명령줄을 처음 접하고 기본 명령만 마스터했습니다.

제가 다니던 대학교에서 강의 프리젠테이션 몇 개(약 25개 정도)를 다운받았는데, 이름이...

L2%20Development%20of%20immune%20system.pptx
L4%20Molecular%20Recognition.pdf

보시다시피 %20공백 대신 URL 인코딩을 사용하여 다운로드됩니다.

%20내 질문은 이러한 모든 파일의 이름을 일괄적으로 변경하여 제거하고 공백으로 바꾸는 방법입니다 .

답변1

renameDebian 및 그 파생 제품(Ubuntu 포함)에서는 각 파일 이름에 Perl 표현식을 적용하는 를 사용할 수 있습니다 .

rename 's/%20/ /g' L*
        |  |  | |   |
        |  |  | |   +--- Files to match
        |  |  | +------- globally
        |  |  +--------- with space
        |  +------------ %20
        +--------------- Substitute

공백 대신 밑줄을 사용하는 것을 고려해 보겠습니다. 일반적으로 cli 세계에서 생활이 더 쉬워지기 때문입니다.

모든 URI 인코딩에 일반화됨:

rename 'use URI::Escape; $_ = uri_unescape $_' *%*

답변2

당신이 deurlname사용할 수있는도구 이름 바꾸기.

$ ls
L4%20Molecular%20Recognition.pdf
$ deurlname L4%20Molecular%20Recognition.pdf
$ ls
L4 Molecular Recognition.pdf

나는 썼다대본편집기에서 파일 이름을 바꿀 수 있습니다.

파일 이름을 스크립트에 전달하면 해당 파일 이름이 포함된 편집기가 열립니다. 그런 다음 파일 이름을 편집하고 편집기를 작성한 후 닫습니다.

$ ls
  L4%20Molecular%20Recognition.pdf
$ viname L4%20Molecular%20Recognition.pdf
  ======================
  L4%20Molecular%20Recognition.pdf█
  ======================

  ======================
  L4-Molecular-Recognition.pdf█
  ======================
  (pretend this is an editor)
$ ls
  L4-Molecular-Recognition.pdf

나도 썼다대본 내가 선호하는 명명 체계와 일치하도록 파일 이름을 자동으로 바꿉니다. 파일을 다운로드할 때 가장 먼저 하는 일은 해당 파일에 대해 이 스크립트를 호출하는 것입니다.

$ ls
  L4%20Molecular%20Recognition.pdf
$ nf L4%20Molecular%20Recognition.pdf
  'L4%20Molecular%20Recognition.pdf' renamed to 'l4-molecular-recognition.pdf'
$ ls
  L4-molecular-recognition.pdf

해당 스크립트를 조심하세요. 꽤 극적인 이름 변경이 가능합니다. nf -n파일 이름을 바꾸기 전에 테스트 실행( ) 옵션을 사용하세요.

답변3

convmv다음을 사용할 수 있습니다: 파일이 포함된 디렉토리에서:
출력이 무엇인지 테스트하려면:

convmv --unescape *%20*

실제로 파일 이름을 바꾸려면 다음을 추가하십시오 --notest.

convmv --unescape --notest *%20*

답변4

일부 Linux 사용자의 경우 rename다음 명령을 사용하세요.최고의 답변불가능한.

상술 한 바와 같이여기, 프로젝트의 일부로 제공되는 Perl이 아닌 다른 rename프로그램도 사용할 수 있습니다 .util-linux

Lutil-linux 명령(다음으로 시작하는 파일의 경우)과 동일한 명령의 구문은 다음과 같습니다.

rename '%20' ' ' L*

관련 정보