본문 바로가기
리눅스 생활 하고파

[리눅스 명령어] cp 기초부터 옵션까지 한 번에 정리

by 하고집 2026. 1. 16.
반응형

1. cp 란?

cp는 리눅스에서 파일이나 디렉터리를 복사(copy) 할 때 사용하는 명령어다.
mv와 달리 원본은 그대로 두고, 동일한 내용을 가진 사본을 만든다는 점이 핵심이다.
설정 파일 백업, 배포 전 원본 보존 등 초보자부터 실무까지 매우 자주 사용된다.


2. 기본 사용 방법

 
cp [원본] [대상]
  • 대상이 파일명이면: 파일을 복사하면서 이름을 변경한다.
  • 대상이 디렉터리면: 해당 디렉터리 안으로 복사된다.

2.1 파일 복사 예시

 
cp a.txt b.txt

a.txt를 복사해 b.txt를 만든다.

2.2 디렉터리로 복사

 
cp a.txt /tmp/

a.txt를 /tmp/ 디렉터리로 복사한다.


3. 자주 사용하는 옵션 정리

3.1 -i : 덮어쓰기 전에 확인(Interactive)

 
cp -i a.txt /tmp/

대상 위치에 같은 이름의 파일이 있으면 덮어쓸지 물어본다.
중요한 파일을 실수로 덮어쓰는 사고를 방지할 수 있다.


3.2 -n : 덮어쓰지 않기(No clobber)

 
cp -n a.txt /tmp/

대상 파일이 이미 존재하면 아무 작업도 하지 않는다.
자동화 스크립트에서 기존 파일을 보호할 때 유용하다.


3.3 -f : 강제로 덮어쓰기(Force)

 
cp -f a.txt /tmp/

기존 파일이 있어도 확인 없이 덮어쓴다.
배치 작업에서 사용되지만, 초보자에게는 매우 위험할 수 있다.


3.4 -r / -R : 디렉터리 재귀 복사 (필수)

 
cp -r dir1 dir2

디렉터리 전체를 복사할 때 반드시 필요한 옵션이다.
옵션 없이 디렉터리를 복사하면 에러가 발생한다.


3.5 -a : 아카이브 모드 (실무 핵심)

 
cp -a dir1 dir2

아래 속성을 그대로 유지하면서 복사한다.

  • 권한
  • 소유자
  • 타임스탬프
  • 심볼릭 링크

👉 서버에서 디렉터리 백업할 때 가장 많이 쓰는 옵션


3.6 -v : 실행 과정 출력(Verbose)

 
cp -v a.txt /tmp/

복사되는 파일을 하나씩 출력해 준다.
초보자나 작업 로그가 필요한 상황에서 유용하다.


3.7 -u : 더 최신 파일만 복사(Update)

 
cp -u a.txt /tmp/

대상 파일보다 원본이 더 최신일 경우에만 복사한다.
백업이나 동기화 작업에 적합하다.


4. 옵션 조합 예제 (이건 꼭!)

4.1 실무에서 가장 많이 쓰는 조합

 
cp -av dir1 dir2
  • -a : 권한/소유자 유지
  • -v : 복사 과정 확인

👉 서버 설정 디렉터리 백업 시 사실상 표준 조합


4.2 안전한 파일 복사

 
cp -iv a.txt /tmp/
  • 덮어쓰기 전 확인
  • 작업 내용 출력

4.3 자동화 스크립트용 안전 조합

 
cp -nuv a.txt /tmp/
  • 기존 파일 보호
  • 최신 파일만 복사
  • 로그 출력

5. 초보자가 자주 하는 실수

5.1 디렉터리를 옵션 없이 복사하려고 함

 
cp dir1 dir2 ❌
  • 에러 발생
  • 해결 방법: -r 또는 -a 사용

5.2 백업인데 권한이 깨짐

 
cp -r dir1 dir2 ❌
  • 파일은 복사되지만 권한/소유자가 달라질 수 있음
  • 해결 방법: cp -a 사용

5.3 덮어쓰기 사고

 
cp a.txt /tmp/
  • 같은 이름 파일이 있으면 바로 덮어씀
  • 해결 방법: -i 옵션 습관화

6. 정리 한 줄 요약

  • cp는 원본을 보존하면서 복사하는 명령어다.
  • 이것만 기억하자: 디렉터리/백업은 cp -av
반응형