cp (복사)
100%

명령줄 · 레슨 10

cp (복사)

덮어쓰기와 속성 보존 방식을 제어하면서 파일과 디렉터리 트리를 복사하는 방법을 배웁니다.

cp 명령어는 Linux에서 파일과 디렉터리를 복사하는 표준 도구입니다. 원본 파일을 그대로 두고 새 복사본을 만듭니다. 기본 구문은 다음과 같습니다:

cp [OPTIONS] SOURCE DESTINATION

한 개의 파일을 다른 파일로, 하나 이상의 파일을 디렉터리로, 또는 적절한 옵션을 사용해 전체 디렉터리 트리를 복사할 수 있습니다.

파일 하나 복사하기

파일을 복사하려면 원본 파일과 대상 디렉터리 또는 경로를 지정합니다.

$ cp mycoolfile /home/pete/Documents/cooldocs

이 예제에서 mycoolfile은 원본 파일이고, /home/pete/Documents/cooldocs는 대상 디렉터리입니다. 또한 파일을 복사하면서 대상 위치에서 새 이름을 지정할 수도 있습니다.

$ cp mycoolfile /home/pete/Documents/mycoolfile_backup

대상이 기존 디렉터리라면 복사된 파일은 원래 이름을 유지합니다. 대상이 파일 이름이라면 cp는 그 새 이름으로 복사본을 만듭니다.

draft.txt를 유지하면서 final.txt라는 이름의 파일로 복사하는 명령어는 무엇인가요?

여러 파일을 디렉터리에 복사하기

여러 파일을 같은 디렉터리에 복사하려면 모든 원본 파일을 먼저 나열하고 마지막에 대상 디렉터리를 적습니다.

$ cp report.txt notes.txt summary.txt /home/pete/Documents/

원본이 두 개 이상일 때 마지막 인수는 반드시 디렉터리여야 합니다.

a.txtb.txt를 기존 archive/ 디렉터리에 복사하는 명령어는 무엇인가요?

와일드카드로 파일 선택하기

와일드카드는 패턴에 따라 여러 파일을 선택하는 데 도움을 주는 특수 문자로, 매우 유용합니다.

  • *: 임의의 문자 시퀀스와 일치합니다.
  • ?: 임의의 한 문자와 일치합니다.
  • []: 대괄호 안의 문자 중 하나와 일치합니다.

예를 들어, 현재 위치에서 모든 JPEG 이미지를 Pictures 디렉터리로 복사하려면:

$ cp *.jpg /home/pete/Pictures

중요한 데이터가 있는 목적지에 대량 복사하기 전에는 일치 항목을 미리 확인합니다.

$ ls *.jpg
beach.jpg  lunch.jpg  profile.jpg
$ cp *.jpg /home/pete/Pictures

*.jpg를 복사하기 전에 현재 패턴과 일치하는 숨김 항목 이외의 이름을 보여 주는 명령어는 무엇인가요?

디렉터리 트리 복사하기

옵션 없이 cp로 디렉터리를 복사하려 하면 오류가 발생합니다. 디렉터리와 그 안의 모든 내용을 포함해 복사하려면 -r (재귀) 플래그를 사용해야 합니다.

$ cp -r Pumpkin/ /home/pete/Documents

이 명령은 Pumpkin 디렉터리와 그 안의 모든 내용을 Documents 디렉터리로 복사합니다.

일반 Linux 시스템에서는 -R도 같은 재귀 목적을 가집니다:

$ cp -R website /home/pete/backups/

백업 방식 복사에는 아카이브 모드인 -a가 유용합니다. 링크와 여러 파일 속성을 보존하면서 재귀적으로 복사합니다.

$ cp -a project/ project-backup/

링크와 여러 속성을 보존하면서 project/를 백업 방식으로 재귀 복사하려면 어떤 명령어가 적합한가요?

덮어쓰기 제어하기

기본적으로 cp는 대상에 같은 이름의 파일이 있으면 덮어씁니다. 실수로 데이터 손실을 막으려면 -i (대화형) 플래그를 사용해 덮어쓰기 전에 확인을 요청할 수 있습니다.

$ cp -i mycoolfile /home/pete/Pictures
cp: overwrite '/home/pete/Pictures/mycoolfile'? n

기존 대상 파일을 덮어쓰지 않으려면 -n을 사용합니다.

$ cp -n mycoolfile /home/pete/Pictures

-f는 기존 목적지를 쓰기용으로 열 수 없을 때 삭제한 뒤 복사를 다시 시도하게 합니다. 대상을 신중히 확인하는 일을 대신하지 않으며, 쉘 별칭이 -i 같은 옵션을 추가할 수도 있습니다.

report.txtbackup/에 복사하되 같은 이름의 목적지가 이미 있으면 건너뛰는 명령어는 무엇인가요?

파일 보존 또는 새로 고치기

원본 파일의 모드와 허용되는 소유권, 타임스탬프를 보존하려면 -p를 사용합니다.

$ cp -p mycoolfile /home/pete/backups/

-u 옵션은 원본 파일이 대상 파일보다 새롭거나 대상 파일이 없을 때만 복사합니다.

$ cp -u *.txt /home/pete/Documents/

그 밖에 자주 쓰는 옵션은 다음과 같습니다.

  • -f: 필요 시 먼저 대상을 삭제하여 강제로 덮어씁니다.
  • -v: 복사 중인 각 파일을 보여줍니다.

파일과 디렉터리 트리 복사를 연습하려면 다음 실습을 활용해 보세요.

  1. Linux cp 명령어: 파일 복사 - 기본 사용법, 재귀 복사, 속성 보존, 와일드카드 사용 등 고급 옵션을 연습하며 파일과 디렉터리를 효율적으로 복사하는 방법을 익히세요.
  2. 파일과 디렉터리 정리하기 - cp, mv, rm 명령어를 사용해 프로젝트 구조를 정리하고 파일을 이동하며 불필요한 디렉터리를 정리하는 필수 Linux 파일 관리 기술을 연습하세요.

레슨 완료

cp (복사) 완료

이제 목적지 처리 방식을 제어하면서 파일과 디렉터리 트리를 복사할 수 있습니다.

  • 원본 피연산자를 목적지 앞에 배치할 수 있습니다.

  • 대량 복사 전에 와일드카드 일치 항목을 미리 볼 수 있습니다.

  • 디렉터리 트리를 재귀 또는 아카이브 모드로 복사할 수 있습니다.

  • 기존 목적지를 확인하거나 건너뛰거나 의도적으로 교체할 수 있습니다.

  • 필요할 때 속성을 보존하거나 더 새로운 원본만 복사할 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
명령줄(으)로 돌아가기