파일 복사하기
사용법
cp [옵션] [원본파일 혹은 디렉토리] [복사할 파일 혹은 디렉토리] |
옵션
옵션 | 설명 |
-i | 복사할 파일이 이미 존재할 경우, 덮어쓰기 여부를 묻는다. alias에 등록된 cp의 기본값. |
-b | 복사할 파일이 이미 존재할 경우, 백업파일을 생성한다. |
-f | 복사할 파일이 이미 존재할 경우, 강제로 기존 파일을 삭제하고 복사한다. |
-r | 하위 디렉토리까지 전부 복사한다. |
-p | 원본파일의 소유자, 그룹, 권한 등의 정보까지 모두 복사한다. |
-v | 복사 진행상황을 출력한다. |
-n | 대상 디렉토리의 기존 파일을 덮어쓰는 것을 방지한다. 대신 대상 디렉토리에 아직 존재하지 않는 파일만 복사한다 |
예시
- 기본 : 파일을 복사한다.
[root@Linux ~]# touch hello.txt # 실습을 위해 hello.txt 파일을 생성 [root@Linux ~]# cp hello.txt bye.txt [root@Linux ~]# ls hello.txt bye.txt |
- 복수의 파일 복사 : 마지막 경로가 디렉토리여야한다.
[root@Linux ~]# cp bye.txt hello.txt /var/tmp/ # 복사할 파일을 복수로 지정할 때는 도착지를 하나의 디렉토리로 지정 [root@Linux ~]# cd /var/tmp [root@Linux tmp]# ll total 8 -rw-r--r--. 1 root root 1 Apr 26 12:09 bye.txt -rw-r--r--. 1 root root 6 Apr 26 12:09 hello.txt |
- -i : 복사될 파일이 이름이 이미 존재할 경우, 사용자에게 덮어 쓰기 여부를 묻는다.
[root@Linux ~]# touch dumpA dumpB # 실습을 위해서 A B 파일 생성 [root@Linux ~]# cp -i dumpA dumpB cp: overwrite 'dumpB'? n |
- -b : 복사될 파일이 이름이 이미 존재할 경우, 백업파일을 생성한다.
[root@Linux ~]# echo "Hi" > dumpA [root@Linux ~]# echo "Hello" > dumpB [root@Linux ~]# cp -b dumpA dumpB cp: overwrite 'dumpB'? y [root@Linux ~]# ls dumpA dumpB dumpB~ [root@Linux ~]# cat * Hi Hi Hello # B 파일은 A 파일로 덮어씌워지고 백업파일인 B~가 생성된다. |
- -f : 복사 될 파일이 이미 존재 할 경우, 강제로 기존 파일을 지우고 복사.
[root@Linux ~]# echo "Hi" > dumpA [root@Linux ~]# echo "Hello" > dumpB [root@Linux ~]# cp -f dumpA dumpB cp: overwrite 'B'? n # -f옵션을 줘도 덮어쓰기 여부를 물어봄 [root@Linux ~]# alias alias cp='cp -i' ... # alias에 cp -i가 cp의 기본값으로 등록되어있다. [root@Linux ~]# \cp -f A B # 명령어 앞에 \를 붙여 alias를 무시 [root@Linux ~]# cat * Hi Hi # 질문하지 않고 파일을 덮어쓴다. |
- -r : 하위 디렉토리까지 모두 복사한다.
[root@linux ~]# mkdir -p tempA/tempB # 실습을 위해 A디렉토리에 B하위 디렉토리 생성 [root@linux ~]# ls * tempA: tempB [root@Linux ~]# cp -r tempA tempA- [root@linux ~]# ls * tempA: tempB tempA-: tempB |