cp — 리눅스 기본 명령어
Linux / 리눅스 기본 명령어 / cp.html
파일이나 디렉토리를 복사하는 명령어.
기본 정보
| 명령어 이름 | cp (copy) |
|---|---|
| 한 줄 소개 | 파일이나 디렉토리를 복사하는 명령어. |
| 제공 | GNU coreutils (모든 Linux 배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/cp.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 기본 명령어 (태그: 파일 복사, 디렉토리, 리눅스, 기본) |
이 명령어는 무엇인가?
cp는 copy의 약자로, 파일이나 디렉토리를 복사하는 명령어입니다. 원본은 그대로 남고 사본이 생성됩니다.
단일 파일 복사부터 디렉토리 전체 재귀 복사, 속성 유지, 덮어쓰기 방지 등 다양한 옵션을 제공합니다.
어떤 문제를 해결하는가?
- 파일을 백업합니다.
- 설정 파일을 복제해 수정합니다.
- 디렉토리 전체를 다른 위치로 복사합니다.
- 파일을 안전하게 덮어쓰지 않고 복사합니다.
주요 기능
단일 파일 복사
파일을 다른 이름이나 위치로 복사합니다.
- 활용 상황: 파일 백업·복제가 필요할 때.
- 얻는 결과: 원본과 동일한 사본이 생성됩니다.
- 제한 사항: 대상 위치에 같은 이름 파일이 있으면 덮어씁니다.
디렉토리 재귀 복사 (-r)
디렉토리와 그 안의 모든 하위 항목을 함께 복사합니다.
- 활용 상황: 프로젝트 폴더 전체를 복제할 때.
- 얻는 결과: 하위 디렉토리·파일 구조가 그대로 복사됩니다.
- 제한 사항: -r 없이 디렉토리를 복사하면 오류가 발생합니다.
속성 유지 (-p)
권한, 소유자, 수정 시각 등 속성을 그대로 유지합니다.
- 활용 상황: 배포 스크립트에서 속성을 보존해야 할 때.
- 얻는 결과: 복사본이 원본과 동일한 속성을 가집니다.
- 제한 사항: 소유자 변경은 root 권한이 필요합니다.
덮어쓰기 방지 (-n)
대상에 같은 이름 파일이 있으면 건너뜁니다.
- 활용 상황: 실수로 중요한 파일을 덮어쓰지 않으려 할 때.
- 얻는 결과: 기존 파일이 보호됩니다.
- 제한 사항: 건너뛴 파일은 알림이 없으므로 수동 확인이 필요합니다.
설치 및 실행
기본 탑재 확인
모든 Linux 배포판에 기본 포함되어 있습니다.
which cp
cp --version
별도 설치 (경량 환경)
일반적으로 이미 설치되어 있습니다.
sudo apt install coreutils # Debian/Ubuntu
sudo dnf install coreutils # Fedora
실제 사용 예제
기본 파일 복사
파일을 복사합니다.
# 파일 복사
cp report.txt report-backup.txt
# 다른 디렉토리로 복사
cp report.txt /var/backups/
# 여러 파일 한 번에 복사
cp file1.txt file2.txt /tmp/
디렉토리 재귀 복사
디렉토리 전체를 복사합니다.
# 디렉토리 전체 복사 (-r 옵션 필수)
cp -r project/ project-backup/
# 속성 유지하며 복사
cp -rp /etc/nginx/ /tmp/nginx-backup/
안전한 복사 (덮어쓰기 방지)
기존 파일을 보호하며 복사합니다.
# 같은 이름 파일이 있으면 건너뜀
cp -n config.txt /etc/app/
# 백업 타임스탬프 추가
cp config.txt config.txt.$(date +%Y%m%d).bak