Linux에서 디렉토리 이름을 바꾸는 방법

Linux에서 디렉토리 이름을 바꾸는 방법

Linux에서 디렉토리 이름을 바꾸는 것은 쉽고 많은 방법이 있습니다. 한 디렉토리의 이름을 바꾸는 것부터 여러 디렉토리를 검색하고 이름을 바꾸는 것까지 수행하는 방법은 다음과 같습니다.

당신의 데이터는 안전합니다

디렉토리 이름을 바꾸는 것은 우리 모두가 때때로 해야 하는 일입니다.

디렉토리를 만들고 이름의 철자가 틀리면 수정하고 싶습니다. 종종 디렉토리의 목적은 시간이 지남에 따라 또는 프로젝트 수명 동안 변경되며 새로운 용도를 반영하기 위해 이름을 변경하려고 합니다. 아카이브 파일의 압축을 풀고 디렉터리 이름이 대문자로 된 디렉터리 트리를 만들었을 수 있으며 디렉터리 이름을 소문자로 지정하려고 합니다.

원인에 관계없이. 디렉토리의 이름을 변경해도 디렉토리에 포함된 데이터는 아무 것도 하지 않습니다. 해당 데이터에 대한 경로가 변경되지만 이름이 변경된 디렉토리 내의 파일 및 디렉토리는 영향을 받지 않습니다.

시스템 디렉토리의 이름을 바꾸지 마십시오. 시스템 파일 및 명령의 경로를 변경하면 간단히 말해서 컴퓨터 작동에 부정적인 영향을 미칩니다. 디렉토리 이름을 바꾸는 데 사용해야 하는 경우 sudo– 수행 중인 작업을 실제로 알지 못하는 경우 – 이름을 바꾸면 안 됩니다.

mv 명령 사용

가장 단순한 경우에 우리에게 정말로 필요한 것은 mv명령입니다. 모든 Linux 배포판의 필수적인 부분이므로 설치할 것이 없습니다.

이 글을 쓰는 시점 mv에서 팀은 50년이 넘었습니다. 그것은 아마도 텔레타이프와 벙어리 터미널에서 실제 컴퓨터로 느린 직렬 라인을 통해 이동해야 하는 문자 수를 줄이기 위해 짧고 비밀스러운 명령이 유행했던 유닉스 초기로 거슬러 올라갑니다.

실제로 “이동”을 의미하며 디렉토리에서 디렉토리로 파일을 이동하는 데 사용할 수 있습니다. 파일을 이미 있는 동일한 위치로 이동하고 새 이름을 지정하면 파일 이름이 바뀝니다. 디렉토리에서도 동일한 작업을 수행할 수 있습니다.

이 디렉토리에는 두 개의 하위 디렉토리가 있습니다.

ls

디렉토리 이름을 바꾸려면 mv 명령을 사용합니다. 현재 디렉토리 이름과 새 이름을 지정해야 합니다.

mv old-work archive-2

이름을 바꾸려는 디렉토리가 현재 디렉토리에 없으면 디렉토리의 경로와 이름을 제공하십시오.

mv ~/htg/old-work ~/htg/archive-2ls

파일 브라우저 사용

파일 브라우저는 디렉토리의 이름을 바꿀 수 있습니다. 그놈 파일 응용 프로그램의 키는 F2입니다. 디렉터리를 선택하고 F2 키를 누르면 폴더 이름 바꾸기 대화 상자가 열립니다.

새 이름을 입력하고 녹색 이름 바꾸기 버튼을 클릭합니다.

디렉토리 이름이 변경되었습니다.

매우 간단합니다.

이름 바꾸기 명령

rename요구 사항이 단순히 디렉토리 이름을 바꾸는 것보다 더 복잡한 경우 명령 을 사용해야 할 수도 있습니다 . 이렇게 하면 Perl 표현식을 사용하여 파일과 디렉토리의 이름을 바꿀 수 있습니다. 디렉토리 이름을 바꾸는 보다 강력하고 유연한 방법을 제공합니다.

우리는 Perl 기반 명령에 대해 이야기할 것 rename입니다. rename 핵심 Linux 유틸리티의 일부인 또 다른 오래된 명령 이 있습니다. 아마도 우리가 사용하려는 Perl 명령을 설치해야 할 것입니다 rename.

기존 rename명령과의 이름 충돌을 피하기 위해 Perl 명령 은 Fedora 및 Manjaro 에서 rename호출됩니다 . Ubuntu에서 명령 과 둘 다 .prenameperl-renamerenameprenamefile-rename

따라서 Manjaro에서는 명령을 사용해야 하고 perl-renameFedora 에서는 prename. renameUbuntu에서는 둘 중 하나 를 사용할 수 있습니다 prename.

Perl 이름 바꾸기를 설치하려면 Ubuntu에서 다음을 입력해야 합니다.

sudo apt install rename

Fedora에서 명령은 다음과 같습니다.

sudo dnf install prename

Manjaro에서 패키지는 perl-rename.

sudo pacman -Sy perl-rename

예제를 통해 작업하려면 배포에 적절한 명령을 사용했는지 확인하십시오.

이름 바꾸기의 첫 단계

이 명령 rename은 Perl 정규식을 가져와 파일이나 디렉토리, 또는 파일이나 디렉토리 그룹에 적용합니다.

우리 카탈로그에는 다른 카탈로그 모음이 있습니다.

ls

이름은 소문자, 대문자 및 대소문자를 혼합한 것입니다. 적절한 표현을 사용하여 모두 소문자로 변환할 수 있습니다.

rename 'y/A-Z/a-z/' *ls

이전에 완전히 대문자였거나 이상한 대문자가 포함되어 있던 모든 디렉토리는 이제 소문자입니다.

모든 마법은 표현에 있습니다. 표현식은 작은따옴표 ” '“로 묶입니다. 그것이 팀 전체가 의미하는 바입니다.

  • y: 이것은 첫 번째 문자 범위에서 임의의 문자를 검색하고 두 번째 문자 범위에서 해당 문자로 대체함을 의미합니다.
  • /AZ/az/: 첫 번째 범위는 “A”에서 “Z”까지의 모든 문자이고 두 번째 범위는 “a”에서 “z”까지의 모든 문자입니다.
  • *: 별표 와일드카드는 이것이 모든 디렉토리에 적용됨을 의미합니다.

즉, 명령은 “모든 디렉토리에 대해 대문자를 동등한 소문자로 교체하십시오”라고 읽습니다.

rename분명히 중복되어 보이지만 단일 디렉토리의 이름을 ,로 바꿀 수 있습니다 . 를 사용하면 더 빠를 것 mv입니다.

rename 's/gamma/epsilon-2/' *ls

이 표현에서 “S”는 교체를 의미합니다. 각 디렉토리를 검사하여 이름이 “감마”인지 확인합니다. 그렇다면 “epsilon-2″로 대체합니다. 그러나 이것은 예를 들어 “epsilon-2-zeta”로 이름을 바꾸는 것과 같이 “gamma-zeta”라는 디렉토리와도 일치한다는 점에 유의하십시오.

이는 식의 첫 번째 절에 줄 시작 ” ^” 및 줄 끝 ” ” 메타 문자를 추가하여 피할 수 있습니다 .$

lsrename 's/^gamma$/epsilon-2/' *ls

이렇게 하면 “epsilon-2” 디렉토리가 그대로 유지됩니다.

다른 명령과 함께 이름 바꾸기 사용

다른 명령을 사용하여 작업하려는 디렉토리를 찾을 수 있습니다 rename. 중첩된 디렉토리 세트가 있고 “-old”로 끝나는 모든 이름을 “-archive”로 끝내고 싶다면 find및 를 사용하여 이를 달성할 수 있습니다 xargs.

파이프 입력을 허용하지 xargs않기 때문에 사용해야 합니다. rename이 명령 xargs은 파이프 입력을 받고 명령줄 매개변수로 명령줄에 다른 명령을 추가하여 이 문제를 극복합니다.

우리 팀은 다음과 같습니다.

find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"

  • .: find에게 현재 디렉토리에서 검색을 시작하도록 지시합니다. 물론 어느 쪽이든 될 수 있습니다.
  • -깊이: 깊이 우선 검색을 사용합니다. 이는 더 깊은 중첩 하위 디렉토리의 내용이 상위 디렉토리보다 먼저 처리됨을 의미합니다.
  • -type d: 파일이 아닌 디렉토리를 찾습니다.
  • -name “*-old”: 검색 힌트. 이름이 “-old”로 끝나는 디렉토리를 찾고 있습니다.
  • |: find 명령의 출력을 명령으로 파이프합니다 xargs.
  • xargs -r: -r(비어 있으면 실행하지 않음) 적절한 디렉토리가 없으면 명령을 실행하지 않음을 의미합니다.
  • 이름 바꾸기 “s/old$/archive/”: rename실행할 명령입니다.

명령 전의 디렉토리 트리는 다음과 같습니다.

명령을 실행해 보겠습니다.

그리고 하위 디렉토리를 포함한 모든 관련 디렉토리의 이름이 변경된 것을 볼 수 있습니다.

이외의 것은 필요하지 않습니다 mv. GUI 응용 프로그램을 선호하는 경우 파일 브라우저를 사용할 수 있습니다. 많은 디렉토리의 이름을 바꿔야 하는 경우 특히 디렉토리 트리 전체에 흩어져 있는 경우 유연성이 필요합니다 rename.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다