리눅스에서 파일 처리를 할 때 가장 많이 사용되는 명령어 중 하나인 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
Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…