SW/리눅스

Linux : 디렉토리 이름 변경 방법, 예제, 명령어

얇은생각 2022. 11. 15. 07:30
반응형

디렉터리 이름 변경은 Linux 시스템에서 자주 수행해야 하는 가장 기본적인 작업 중 하나입니다. 몇 번의 클릭으로 또는 명령줄 터미널을 사용하여 GUI 파일 관리자에서 디렉터리 이름을 변경할 수 있습니다.

이 문서에서는 명령줄을 사용하여 디렉터리 이름을 변경하는 방법을 설명합니다.

 

 

Linux : 디렉토리 이름 변경 방법, 예제, 명령어

 

 

디렉터리 이름 변경

Linux 및 Unix와 유사한 운영 체제에서는 mv(이동 단축) 명령을 사용하여 파일 및 디렉토리의 이름을 변경하거나 한 위치에서 다른 위치로 이동할 수 있습니다.

디렉토리 이동을 위한 mv 명령 구문은 다음과 같습니다.

mv [OPTIONS] source destination

 

 

예를 들어 디렉토리 dir1의 이름을 dir2로 변경하려면 다음을 실행합니다.

mv dir1 dir2

 

 

디렉토리 이름을 변경할 때는 mv 명령에 정확히 두 개의 인수를 지정해야 합니다. 첫 번째 인수는 디렉토리의 현재 이름이고 두 번째 인수는 새 이름입니다.

dir2가 이미 있는 경우 dir1은 dir2 디렉토리로 이동됩니다.

현재 작업 디렉토리에 없는 디렉토리의 이름을 변경하려면 절대 경로 또는 상대 경로를 지정해야 합니다.

mv /home/user/dir1 /home/user/dir2

 

 

 

 

여러 디렉터리의 이름을 변경

단일 디렉토리의 이름을 변경하는 것은 간단한 작업이지만, 여러 디렉토리의 이름을 한 번에 바꾸는 것은 특히 새 Linux 사용자에게 어려움이 될 수 있습니다.

여러 디렉토리의 이름을 한 번에 변경할 필요가 거의 없습니다.

 

 

 

MV를 사용하여 여러 디렉터리의 이름을 변경

mv 명령은 한 번에 하나의 파일 이름만 바꿀 수 있습니다. 그러나 찾기 또는 내부 루프와 같은 다른 명령과 함께 사용하여 한 번에 여러 파일의 이름을 바꿀 수 있습니다.

다음은 Bash for 루프를 사용하여 현재 작업 디렉토리의 모든 디렉토리 이름에 현재 날짜를 추가하는 예를 보여 줍니다.

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

 

 

코드를 한 줄씩 분석하겠습니다.

 

첫 번째 줄은 루프를 생성하고 모든 파일 목록을 반복합니다.

두 번째 줄은 파일이 디렉토리인지 확인합니다.

세 번째 줄은 현재 날짜를 각 디렉토리에 추가합니다.

 

다음은 mv를 find와 함께 사용하는 동일한 작업에 대한 솔루션입니다.

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;

 

 

find 명령은 -exec 옵션을 사용하여 모든 디렉토리를 하나씩 MV로 전달합니다. 문자열 {}은(는) 현재 처리 중인 디렉토리의 이름입니다.

예제를 보면 알 수 있듯이 여러 디렉토리의 이름을 mv로 바꾸려면 Bash 스크립팅에 대한 충분한 지식이 필요하기 때문에 쉬운 작업이 아닙니다.

 

 

 

rename으로 여러 디렉토리의 이름을 변경

rename 명령은 여러 파일 및 디렉토리의 이름을 변경하는 데 사용됩니다. 이 명령은 정규식에 대한 기본 지식이 필요하므로 mv보다 고급입니다.

구문이 다른 두 가지 버전의 rename 명령이 있습니다. rename 명령의 Perl 버전을 사용합니다. 지정된 perl 정규식에 따라 파일 이름이 변경됩니다.

다음 예제에서는 현재 작업 디렉토리에 있는 모든 디렉토리 이름의 공백을 밑줄로 바꾸는 방법을 보여 줍니다.

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

 

 

안전을 위해 -n 옵션을 전달하여 이름을 바꾸지 않고 이름을 바꿀 디렉토리의 이름을 인쇄합니다.

다음은 디렉토리 이름을 소문자로 변환하는 방법을 보여 주는 또 다른 예입니다.

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

 

 

mv 명령을 사용하여 디렉터리 이름을 변경하는 방법을 보여드렸습니다.

 

 

 

참조

https://linuxize.com/post/how-to-rename-directories-in-linux/

반응형