cp — 파일 및 폴더 복사
Linux / 파일 및 디스크 관리 / cp.html
💬 "cp 명령어"
- 개념: 파일이나 폴더를 복사(Copy)하는 리눅스 기본 명령어입니다. 설정 파일을 백업하거나 배포용 파일을 다른 경로로 옮겨 담을 때 가장 먼저 쓰게 됩니다.
- 출력 구조: 성공해도 화면에 아무것도 출력하지 않습니다. 그래서 "복사가 된 건가?" 싶을 때가 많습니다.
- 실무 권장 출력:
-v옵션을 붙이면'main.go' -> 'main.go.bak'처럼 복사된 결과를 한 줄씩 보여줍니다. - 왼쪽 열: 복사할 원본의 경로 또는 이름이 표기됩니다.
- 오른쪽 열: 새로 만들어지는 복사본의 경로 또는 이름이 출력됩니다.
필수 명령어 조합 3가지
cp 파일1 파일2— 파일 하나를 다른 이름으로 복사cp -r 폴더1 폴더2— 폴더를 하위 내용까지 통째로 복사cp -a 원본 대상— 권한·소유자·타임스탬프까지 그대로 보존해 복사(백업용)
여기에 실수를 막아주는 옵션 두 개를 더 기억해 두면 좋습니다.
-i— 덮어쓰기 전에 물어봅니다.-n— 이미 파일이 있으면 덮어쓰지 않고 건너뜁니다.
💬 "응용하는 방법도 하나 알려줘"
시나리오: 잘 돌아가는 nginx 설정을 건드리기 전에, 날짜를 붙여 안전하게 백업해 두는 방법입니다.
1단계: 원본 확인
먼저 백업할 파일이 있는지, 크기는 얼마인지 확인합니다.
ls -l nginx.conf
2단계: 날짜를 붙여 백업
-a로 권한과 시간을 그대로 살리고, 파일명 뒤에 오늘 날짜를 붙여 남겨 둡니다.
cp -a nginx.conf nginx.conf.$(date +%F).bak
3단계: 결과 검증
원본과 백업본의 크기·권한이 같은지 눈으로 비교합니다. -v를 함께 쓰면 복사 과정도 로그로 남길 수 있습니다.
ls -l nginx.conf*
cp -v nginx.conf nginx.conf.$(date +%F).bak
실제 실행 화면
cp -v로 파일을 복사한 예시 화면입니다. 복사할 원본과 새로 만들어지는 복사본이 화살표로 표시됩니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.