Linux에서 디렉토리 이름을 바꾸는 것은 쉽고 많은 방법이 있습니다. 단일 디렉토리의 이름을 바꾸는 것부터 많은 디렉토리를 찾고 이름을 바꾸는 것까지, 여기 그 방법이 있습니다.
귀하의 데이터는 안전합니다
디렉토리 이름을 바꾸는 것은 우리 모두가 때때로 해야 하는 일입니다.
디렉토리를 생성하고 이름의 철자가 틀릴 수 있으므로 올바르게 지정하고 싶습니다. 종종 디렉토리의 목적은 시간이 지남에 따라 또는 프로젝트 수명을 통해 변경되며 새로운 용도를 반영하도록 이름을 조정하려고 합니다. 아마도 아카이브 파일의 압축을 풀고 디렉토리 이름이 대문자로 된 디렉토리 트리가 생성되었으며 이를 소문자로 지정하고 싶을 것입니다.
이유가 무엇이든. 디렉토리의 이름을 바꾸는 것은 그 안에 있는 데이터에 아무런 영향을 미치지 않습니다. 그것은 변화 길 그러나 이름이 변경된 디렉토리 내부의 파일과 디렉토리는 건드리지 않습니다.
시스템 디렉토리의 이름을 바꾸지 마십시오. 시스템 파일 및 명령의 경로를 변경하면 최소한 컴퓨터 실행에 해로운 영향을 미칩니다. 사용해야 하는 경우 sudo
당신이 무엇을 하고 있는지 정말로 모르는 경우를 제외하고 디렉토리의 이름을 바꾸려면 그 이름을 바꾸지 말아야 합니다.
mv 명령 사용
가장 간단한 경우에 우리에게 정말로 필요한 것은 mv
명령. 이것은 모든 Linux 배포의 필수적인 부분이므로 설치할 것이 없습니다.
그만큼 mv
명령은 작성 당시 50세 이상입니다. 짧고 비밀스러운 명령이 유행하던 유닉스의 여명기에서 유래한 것으로, 텔레타이프와 벙어리 터미널에서 실제 컴퓨터까지 느린 직렬 라인을 통과해야 하는 문자의 수를 줄이기 위함일 것입니다.
실제로 “이동”을 나타내며 디렉토리에서 디렉토리로 파일을 이동하는 데 사용할 수 있습니다. 파일을 이미 있는 동일한 위치로 이동하고 새 이름을 지정하면 파일 이름이 변경된 것입니다. 그리고 디렉토리에서도 동일한 작업을 수행할 수 있습니다.
이 디렉토리에는 두 개의 하위 디렉토리가 있습니다.
ls
디렉토리의 이름을 바꾸려면 mv 명령을 사용합니다. 디렉토리의 현재 이름과 새 이름을 제공해야 합니다.
mv old-work archive-2
이름을 바꾸려는 디렉토리가 현재 디렉토리에 없으면 경로와 디렉토리 이름을 제공하십시오.
mv ~/htg/old-work ~/htg/archive-2
ls
파일 브라우저 사용
파일 브라우저는 디렉토리의 이름을 바꿀 수 있습니다. 그놈 파일 응용 프로그램의 키 입력은 F2입니다. 디렉토리를 강조 표시하고 F2 키를 누르면 “폴더 이름 바꾸기” 대화 상자가 열립니다.
새 이름을 입력하고 녹색 “이름 바꾸기” 버튼을 클릭합니다.
디렉토리 이름이 변경됩니다.
그것만큼 간단합니다.
이름 바꾸기 명령
디렉토리의 간단한 이름 바꾸기보다 요구 사항이 더 복잡한 경우 다음을 사용해야 할 수도 있습니다. rename
명령. 이렇게 하면 Perl 표현식을 사용하여 파일과 디렉토리의 이름을 바꿀 수 있습니다. 디렉토리 이름을 바꾸는 보다 강력하고 유연한 방법을 제공합니다.
우리는 Perl 기반 rename
명령. 라는 또 다른 오래된 명령이 있습니다. rename
이것은 Linux 핵심 유틸리티의 일부입니다. Perl을 설치해야 할 것입니다. rename
우리가 사용하려는 명령.
기존 이름과의 이름 충돌을 방지하기 위해 rename
명령, 펄 rename
명령이 호출됩니다 prename
페도라에서, 그리고 perl-rename
만자로. 우분투에서는 rename
그리고 prename
명령은 둘 다 라는 바이너리로 해석되는 심볼릭 링크입니다. file-rename
.
따라서 Manjaro에서는 다음을 사용해야 합니다. perl-rename
그리고 Fedora에서는 prename
. 우분투에서는 다음을 사용할 수 있습니다. rename
또는 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
이전에 완전히 대문자였거나 이상한 대문자를 포함했는지 여부에 관계없이 모든 디렉토리는 이제 소문자입니다.
모든 마법은 표현에 포함되어 있습니다. 표현식은 작은따옴표 “'
“. 이것이 전체 명령이 의미하는 것입니다.
- 와이: 이것은 첫 번째 문자 범위에서 임의의 문자를 검색하고 두 번째 문자 범위에서 해당 문자로 대체함을 의미합니다.
- /AZ/az/: 첫 번째 범위는 “A”부터 “Z”까지의 모든 문자이고 두 번째 범위는 “a”부터 “z”까지의 모든 문자입니다.
- *: 별표 와일드카드는 이것을 모든 디렉토리에 적용한다는 의미입니다.
즉, 명령은 “모든 디렉토리에 대해 대문자를 동등한 소문자로 바꾸십시오.”로 읽습니다.
분명히 다음을 사용하여 단일 디렉토리의 이름을 바꿀 수 있습니다. rename
, 비록 그것이 과도하지만. 사용하면 더 빠를 것입니다 mv
.
rename 's/gamma/epsilon-2/' *
ls
이 표현에서 “”는 대체를 의미합니다. 각 디렉토리를 검사하여 이름이 “감마”인지 확인합니다. 그렇다면 “epsilon-2″로 대체합니다. 그러나 이것은 예를 들어 “epsilon-2-zeta”로 이름을 바꾸는 “gamma-zeta”라는 디렉토리와도 일치했을 것입니다.
string “의 시작을 추가하여 이것을 피할 수 있습니다.^
” 및 문자열 끝 “$
” 메타 문자 표현식의 첫 번째 절에.
ls
rename '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에게 현재 디렉토리에서 검색을 시작하도록 지시합니다. 물론 이것은 어떤 경로도 될 수 있습니다.
- -깊이: 깊이 우선 검색을 사용합니다. 이것은 더 깊은 중첩 하위 디렉토리의 내용이 상위 디렉토리보다 먼저 처리됨을 의미합니다.
- -유형 d: 파일이 아닌 디렉토리를 검색합니다.
- -이름 “*-old”: 검색 단서. 이름이 “-old”로 끝나는 디렉토리를 찾고 있습니다.
-
|: find의 출력을 다음으로 파이핑하고 있습니다.
xargs
명령. -
xargs -r:
-r
(비어 있으면 실행 안 함) 일치하는 디렉터리가 없으면 명령을 실행하지 않음을 의미합니다. -
“s/old$/archive/” 이름 바꾸기:
rename
실행할 명령입니다.
명령 전의 디렉토리 트리는 다음과 같습니다.
우리는 다음 명령을 실행합니다.
그리고 중첩된 디렉토리를 포함하여 일치하는 모든 디렉토리의 이름이 변경된 것을 볼 수 있습니다.
코스용 말
디렉토리 이름을 바꾸는 것은 그 이상은 필요하지 않습니다. mv
. GUI 응용 프로그램을 선호하는 경우 파일 브라우저를 사용할 수 있습니다. 이름을 바꿀 디렉토리가 많고 특히 디렉토리 트리 전체에 흩어져 있는 경우 다음과 같은 유연성이 필요합니다. rename
.
관련된: Linux 터미널에서 파일을 관리하는 방법: 알아야 할 11가지 명령