The DREAM of SNORLAX

[리눅스 명령어] cp를 통한 복사 붙여넣기 본문

IT/Linux 시스템

[리눅스 명령어] cp를 통한 복사 붙여넣기

GRACE_MJ 2018. 7. 5. 01:20

[리눅스 명령어] cp를 통한 복사 붙여넣기










이번 포스팅은 쉬운 설명을 위해 일단 디렉터리와 파일을 준비했다.


현재 /root/test/라는 디렉터리 안에 디렉터리 a, b가 존재하고,


a 디렉터리 안에는 파일 file1이 존재하는 상태이다





cp 명령어


copy의 준말로,


이 명령어를 통해 디렉터리나 파일을 복사하고, 이름 변경도 할 수 있다


하지만 소유권이나 시간 등이 바뀐다


형식: cp -[option] [원본 파일] [사본 파일]


리눅스는 띄어쓰기, 대소문자에 민감하다. 띄어쓰기를 반드시 신경쓰자






그래서 처음에는 cp ./a/file1 ./b/file2를 통해


현재 위치의 a 디렉터리 안의 file1 (복사)→ 현재 위치의 b 디렉터리 안의 file2


그리고 cp ./a/file1 ./b/를 통해


현재 위치의 a 디렉터리 안의 file1 ─(복사)→ 현재 위치의 b 디렉터리 안



그리고 b 디렉터리를 확인해보자


처음 명령을 통해 file2로 이름이 바뀌어서 복사된 파일,


두번째 명령을 통해 이름 그대로 file1이 복사된 파일이 존재한다.








원본 파일이 들어있는 a 디렉터리와 비교해보면,


시간이 바뀌어 있는 것을 볼 수 있다.


이는 권한도 마찬가지인데, 둘다 내가 만들고 내가 복사한 것이라 여기서는 권한이 바뀌지 않는다.





만약 시간, 권한 변함 없이, 원본 그대로를 복사하고 싶다면


-p (소문자) 옵션을 함께 사용하면 된다.








그리고, 여기서 의문이 하나 생길 것이다.


파일만 복사할 수 있는 건가?




사실상 cp 명령어는 파일만 복사할 수 있지만,


옵션을 함께 사용하면 디렉터리도, 심지어는 디렉터리 내부의 파일/디렉터리까지도 복사가 가능하다





-r 옵션을 사용하면 디렉터리를 복사할 수 있는데


이때 하위 디렉터리 및 파일까지도 복사가 된다.




cp -r ./b/ ./a/를 통해


현 위치의 b 디렉터리 (복사)→ 현 위치의 a 디렉터리 안


그리고 a 디렉터리를 확인해보면, b 디렉터리가 복사가 된 것을 볼 수 있고,


그 안의 파일들까지도 그대로 복사가 된 것을 확인할 수 있다.


물론 시간은 모두 변경되어서 말이다.




cp 명령어 옵션 총정리


cp -p : 원본 그대로 복사 (시간, 권한 변화 X)


cp -r : 디렉터리도 복사 (하위 디렉터리 및 파일까지)


Comments