[Linux] 리눅스 cp 명령어 + 옵션 핵심 정리(파일, 디렉터리 복사하기)
by 무작정 개발반응형
개요
이번 글에서는 Linux / Unix 서버에서 사용하는 기본 명령어 중 하나인 cp 명령어에 대해 정리하였습니다.
cp 명령어는 copy(복사)라는 단어의 줄임말이고, Linux / Unix 환경에서 파일 혹은 디렉터리를 복사할 때 사용합니다.
Linux / Unix 공부할 때 해당 명령어의 Full Name [ex) cp -> copy]을 같이 학습하시는 것이 공부하는데
많은 도움이 됩니다.
cp 명령어 핵심 정리
간단하게 cp 명령어를 사용해서 파일을 복사하는 방법을 요약하였습니다.
cp 명령어를 사용 시 같은 경로에 같은 이름의 파일이 있다면 덮어쓰게 되므로 주의해야 합니다.
cp 명령어 - 기본 및 파일 복사 방법
# cp 명령어 기본 사용 방법
cp [옵션] [복사 대상 디렉터리or파일] [복사될 디렉터리or파일]
# ex1) 현재 디렉터리에 있는 test.js파일을 현재 디렉터리에 test_backup.js이라는 이름으로 변경 후 복사
cp test.js test_backup.js
# ex2) /hw/js/ 경로에 있는 test.js 파일을 /backup/js/ 경로에 복사
cp /hw/js/test.js /backup/js/test.js
위 코드들은 기본적으로 cp 명령어 사용 방법에 대한 예시입니다.
- cp 명령어를 사용할 때 [옵션]은 생략 가능하지만, 나머지 값들은 필수 값입니다.
- 따로 경로를 사용하지 않으면 기본 값(Default)으로 현재 위치를 기준으로 동작합니다.
- cp 명령어를 사용해서 해당 파일을 복사할 때 새로운 이름으로 지정할 수 있습니다.
- cp [옵션]에 여러 가지 옵션을 줘서 파일 복사 이외에 디렉터리 복사(하위 파일 포함) 등이 가능합니다.
cp 명령어 - 디렉터리 복사 방법
복사 대상이 파일 1개가 아닌 해당 디렉터리(하위에 있는 파일 모두 포함)를 복사하는 방법은 -r 이라는 옵션을 줘서 사용합니다.
cp -r [복사 대상 디렉터리] [복사될 디렉터리]
# ex) /hw/js 라는 디렉터리를 /backup/에 복사한다.
cp -r /hw/js /backup/
cp 명령어 - 자주 사용하는 옵션들
cp 명령어를 포함하여 Linux / Unix 에서 사용하는 명령어에 아래의 옵션처럼 명령어 + 옵션을 추가하여 사용할 수 있습니다.
아래의 옵션을 제외하고 더 다양한 옵션이 있고, 해당 옵션들은 필요에 따라 [help]를 활용하거나 구글링을 해서 사용하면 된다.
필자는 주로 사용하는 옵션은 -r -v -p 입니다.
# cp help 사용 방법
cp --help
- -r : 해당 옵션을 주면 하위 디렉터리(하위에 있는 모든 파일포함)까지 모두 복사한다.
- -v : cp 명령어를 수행하면서 복사 진행 상태를 출력한다.
- -p : 파일 or 디렉터리를 복사할 때 복사 대상의 소유자(계정), 그룹, 권한등의 정보까지 복사한다.
- -i : 복사대상 파일이 이미 해당 위치에 있다면 사용자한테 덮어 쓰기 여부를 묻고 복사한다.
- -f : 복사대상 파일이 이미 해당 위치에 있다면 파일을 지우고, 강제로 복사한다.
[ cp 옵션 사용 시 주의사항 ]
cp 명령어 옵션을 줄 때 주의할 점이 있습니다.
개인 서버에서 사용할 경우에는 문제가 없지만, 실무에서는 해당 서버 접근을 할 수 있는 계정이 지정되어 있거나,
같은 디렉터리에 있더라도 각 파일마다 소유 계정 혹은 권한이 다를 수 있습니다.
그래서 꼭 해당 서버에 접근한 계정이랑 복사할 파일 혹은 디렉터리 소유 계정이랑 동일한 지, 혹여나 다르더라도
추후에 문제가 생길 수 있는 지 꼭 확인이 필요합니다.
따라서 실무에서 사용 중인 서버에 접근해서 cp 명령어를 사용해서 백업 혹은 덮어 쓰기를 진행할 때
복사대상 파일 or 디렉터리의 소유자(계정) 권한 등을 그대로 유지하면서 복사하기 위해서는 -r, -p 옵션을 함께 사용하는 것이 좋습니다.
Reference
반응형
'OS > Linux' 카테고리의 다른 글
[Linux] 리눅스 find 명령어 사용 방법 핵심 정리(파일 찾기) (0) | 2023.11.14 |
---|---|
[Linux] tar 압축할 때 \r 문자 때문에 No such file or directory 가 발생할 경우 (0) | 2023.08.10 |
[Ubuntu] 우분투에 PostgreSQL 설치 및 접속 핵심 정리 (0) | 2023.03.02 |
[Ubuntu] 우분투에서 echo $JAVA_HOME 출력 안 됨(공백 출력) (1) | 2023.03.02 |
[Ubuntu] FileZilla 연결해서 파일 전송 - FTP (3) | 2023.02.28 |
블로그의 정보
무작정 개발
무작정 개발