본문 바로가기

LINUX

[Linux] 리눅스 cp 명령어 / 파일, 디렉토리 복사

cp  : 복사 명령어

 

2021년 3월 사용한 복사명령어 정리!

간단하게 서버내 DB 테이블을 같은 서버내 다른 DB테이블로 복사할때 사용했었다.

cp -p ADMIN_MENU_RELATION.* /db_data/sample_asp/


▶사용예시

1. 파일 복사하기

cp [원본 파일 이름] [옮길 파일 이름]

cp [원본 파일 위치/원본 파일 이름] [옮길 파일 위치/옮길 파일 이름]

cp [원본 파일 이름] [옮길 파일 위치]

cp sample.sh sample2.sh
cp sampleMain/sample.sh sampleSub/sample.sh
cp sample.sh ../sampleSub

2. 디렉토리 안 모든 파일 복사하기

cp -r * [현재 경로 기준 옮길 위치]

cp -p [파일 위치].* [옮길 파일 위치]

cp -r * ../c
cp -p SAMPLE.* /c/SampleSub/

3. 디렉토리 복사하기

cp -r [디렉토리명] [옮길 파일 위치]

cp -r sample ./sampleSub/

▶옵션예시

a 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사
b 복사할 대상이 이미 있어 덮어쓰거나 지울 경우를 대비해 백업본 생성
d 복사할 원본이 심볼릭 파일일 경우 심볼릭 대상이 되는 파일을 복사
f 복사 대상 파일이 이미 있으면 강제로 지우고 복사
i 복사 대상 파일이 이미 있으면 사용자에게 어떻게 처리할지 물어보는 프롬프트 출력
l 복사 대신에 하드링크 (하드 링크 형식이기 때문에 경로 복사 불가)
L 항상 SOURCE의 심볼 링크를 따름
n 존재하는 파일에 덮어쓰기 불가
p 원본 파일의 소유주, 그룹, 권한, 시간 정보들을 그대로 보존하여 복사
P 원본 파일명에 디렉토리 경로도 같이 입력할 경우, 그 경로 그대로 복사 (대상으로 사용할건 경로 이름이여야 함)
r 또는 R 일반 파일이면 복사, 원본이 경로면 그 경로를 따라 경로 안에 있는 모든 하위 경로, 파일 복사
s 경로가 아닌 일반 파일을 심볼릭 링크 형식으로 복사(복사할 원본 파일명은 절대경로(/)로 지정된 파일이름)
* 심볼릭 링크를 지원하지 않는 시스템에서 사용시 오류 메시지를 보여줌
S 원본 파일과 동일한 이름의 파일이 존재할 경우 백업 파일 생성(백업 파일에 붙여질 확장자를 원하는 이름 지정)
t 모든 소스 인수들을 디렉토리로 복사
T 목적 파일을 보통 파일로 여김
u 복사할 대상이 이미 있는데 파일의 변경 날짜가 같거나 더 최근이면 복사하지 않음
* 원본 파일이 목적 파일보다 최신 파일일 경우에만 복사하는 옵션
v 복사 상태를 자세하게 출력
V 백업하는 방법을 지정
* 이미 지정되어 있는 VERSION_CONTROL 환경 변수를 무시
* 환경 변수도 지정되어 있지 않고 옵션도 사용하지 않는다면 초기값으로 existing 사용

사용될 수 있는 백업 방법
- t  또는 numbered : 항상 번호 있는 백업본을 생성
- nil 또는 existing : 대상 파일이 이미 있을 경우만 백업본 생성
- never 또는 simple : 간단한 백업 생성
x 원본 파일과 대상 파일의 파일 시스템이 서로 다를 경우 복사하지 않음
Z 대상 파일의 SELinex 보안 컨텍스트를 기본 유형으로 설정
--help 도움말을 보여줌
--version 버전 정보를 보여줌