본문 바로가기
UX 개발/Shell Script (Bash)

쉘 스크립트(Bash) - 폴더 복사하여 같은 폴더에 사본 만들기

반응형

cp 명령어를 사용하여 디렉토리를 복사하고 동일한 폴더에 중복 복사본을 만드는 방법에 대해 한국어로 설명해드리겠습니다.

cp 명령어와 -r 옵션

  • cp: 기본적인 복사 명령어로, 파일이나 디렉토리를 한 위치에서 다른 위치로 복사합니다.
  • -r (또는 --recursive): 이 옵션은 cp 명령어에 디렉토리를 재귀적으로 복사하라고 지시합니다. 즉, 디렉토리와 그 안의 모든 파일 및 하위 디렉토리를 포함하여 구조를 그대로 유지하면서 복사합니다.

예제

original_folder라는 디렉토리가 있고, 동일한 상위 디렉토리에 duplicate_folder라는 이름으로 중복 복사본을 만들고 싶다고 가정해 보겠습니다.

단계:

  1. 터미널 열기:
    터미널 애플리케이션을 엽니다.
  2. 상위 디렉토리로 이동:
    cd 명령어를 사용하여 original_folder가 있는 디렉토리로 이동합니다.
  3. cd /path/to/your/directory
  4. 디렉토리 복사:
    cp 명령어와 -r 옵션을 사용하여 디렉토리를 복사합니다.
  5. cp -r original_folder duplicate_folder

실습 예제

다음과 같은 디렉토리 구조가 있다고 가정해 보겠습니다:

/path/to/your/directory/
└── original_folder/
    ├── file1.txt
    ├── file2.txt
    └── subdirectory/
        └── file3.txt

다음 명령어를 실행합니다:

cd /path/to/your/directory
cp -r original_folder duplicate_folder

이 명령어를 실행하면 디렉토리 구조는 다음과 같이 됩니다:

/path/to/your/directory/
├── original_folder/
│   ├── file1.txt
│   ├── file2.txt
│   └── subdirectory/
│       └── file3.txt
└── duplicate_folder/
    ├── file1.txt
    ├── file2.txt
    └── subdirectory/
        └── file3.txt

공백이 포함된 디렉토리 이름 처리

디렉토리 이름에 공백이 포함된 경우, 문제를 피하기 위해 따옴표를 사용해야 합니다:

cp -r "original folder" "duplicate folder"

고유한 이름 생성

기존 디렉토리와의 충돌을 피하기 위해 중복 복사본에 고유한 이름을 생성하고 싶을 수 있습니다. 다음은 디렉토리 이름에 현재 날짜와 시간을 추가하는 스크립트입니다:

original_folder="original_folder"
timestamp=$(date +%Y%m%d_%H%M%S)
duplicate_folder="${original_folder}_${timestamp}"

cp -r "$original_folder" "$duplicate_folder"

이 스크립트를 실행하면 original_folder_20240627_153000와 같은 이름으로 original_folder의 복사본이 생성되어 현재 날짜와 시간을 기준으로 고유한 이름이 부여됩니다.

요약

  • cp -r을 사용하여 디렉토리를 재귀적으로 복사합니다.
  • 디렉토리 이름에 공백이 있는 경우 따옴표로 묶습니다.
  • 필요시 중복 복사본에 고유한 이름을 생성하는 스크립트를 사용합니다.

이 개념들을 이해하면 Bash를 사용하여 디렉토리를 효과적으로 복사하고 내용을 관리할 수 있습니다.

반응형
❤️ 외주/과외 문의
🖥️ 클라우드 메뉴판 : 디지털팝