cp 명령어는 Linux에서 파일과 디렉터리를 복사하는 표준 도구입니다. 원본 파일을 그대로 두고 새 복사본을 만듭니다. 기본 구문은 다음과 같습니다:
cp [OPTIONS] SOURCE DESTINATION
명령줄 · 레슨 10
덮어쓰기와 속성 보존 방식을 제어하면서 파일과 디렉터리 트리를 복사하는 방법을 배웁니다.
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.txt와 b.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.txt를 backup/에 복사하되 같은 이름의 목적지가 이미 있으면 건너뛰는 명령어는 무엇인가요?
원본 파일의 모드와 허용되는 소유권, 타임스탬프를 보존하려면 -p를 사용합니다.
$ cp -p mycoolfile /home/pete/backups/
-u 옵션은 원본 파일이 대상 파일보다 새롭거나 대상 파일이 없을 때만 복사합니다.
$ cp -u *.txt /home/pete/Documents/
그 밖에 자주 쓰는 옵션은 다음과 같습니다.
-f: 필요 시 먼저 대상을 삭제하여 강제로 덮어씁니다.-v: 복사 중인 각 파일을 보여줍니다.파일과 디렉터리 트리 복사를 연습하려면 다음 실습을 활용해 보세요.
cp, mv, rm 명령어를 사용해 프로젝트 구조를 정리하고 파일을 이동하며 불필요한 디렉터리를 정리하는 필수 Linux 파일 관리 기술을 연습하세요.레슨 완료
이제 목적지 처리 방식을 제어하면서 파일과 디렉터리 트리를 복사할 수 있습니다.
원본 피연산자를 목적지 앞에 배치할 수 있습니다.
대량 복사 전에 와일드카드 일치 항목을 미리 볼 수 있습니다.
디렉터리 트리를 재귀 또는 아카이브 모드로 복사할 수 있습니다.
기존 목적지를 확인하거나 건너뛰거나 의도적으로 교체할 수 있습니다.
필요할 때 속성을 보존하거나 더 새로운 원본만 복사할 수 있습니다.