리눅스 명령어 – cp
리눅스에서 파일 처리를 할 때 가장 많이 사용되는 명령어 중 하나인 cp
명령어를 살펴보겠습니다. 명령어 이름에서 유추할 수 있다시피 복사(copy)의 약자이며 파일이나 폴더를 다른 위치로 복사해주는 역할을 합니다.
사용 방법
cp
명령어의 사용 방법은 mv 명령어와 유사합니다. 두개의 인자값이 필요하며 앞쪽의 옵션은 선택에 따라 사용됩니다. 각 인자와 옵션 사이에는 공백이 필요합니다.
- 첫번째 인자값: 복사할 대상 파일이나 디렉토리 경로입니다.
- 두번째 인자값: 복사 될 파일이나 디렉토리의 도착 경로입니다.
$ cp {옵션 (선택적)} {첫번째인자값} {두번째인자값}
예를 들어 /home/user/Downloads/a.txt
라는 파일을 /home/user/Desktop
경로로 복사해보겠습니다. 전자의 경로(대상)는 첫번째 인자값에, 후자의 경로(목적지)는 두번째 인자값에 넣어 명령을 실행할 수 있습니다.
$ cp /home/user/Downloads/a.txt /home/user/Desktop
두번째 인자값의 경로에 파일명은 생략해도 됩니다. 그러나 만약 a.txt
파일을 복사하면서 b.txt
파일로 이름을 바꾸고 싶다면 두번째 인자값 경로에 변경할 파일 이름을 같이 포함하면 됩니다.
$ cp /home/user/Downloads/a.txt /home/user/Desktop/b.txt
만약 복사할 파일의 경로가 서로 같고, 파일 이름만 다른 경우 현재 디렉토리 경로를 생략할 수도 있습니다.
$ cp a.txt b.txt
지금까지는 하나의 파일을 복사하는 것이었지만, 만약 디렉토리와 디렉토리 내의 모든 파일을 한번에 복사하고 싶을 때가 있습니다. 이럴 때는 위와 같이 사용하는 것은 같지만 인자값에 파일명은 제외해야 하며, -r
옵션을 반드시 붙여야 합니다.
$ cp -r /home/user/Downloads /home/user/Desktop
이렇게하면 /home/user/Desktop
디렉토리에 Downloads
폴더가 복사될 것입니다. 만약 -r
옵션을 붙이지 않는다면 아래와 같은 에러가 발생할 것입니다.
cp: -r not specified; omitting directory 'Downloads'
리눅스에서 지원되는 와일드카드 기호를 사용하면 특정 규칙에 일치하는 파일들을 한번에 특정 디렉토리로 복사할 수도 있습니다. 예를들어 Hello1.txt
와 Hello2.txt
파일이 있을 때 아래와 같이 He*
를 사용하면 두 파일을 모두 복사할 수 있습니다.
$ cp /home/user/Downloads/He* /home/user/Desktop