리눅스 cp 명령어와 mv 명령어에 대해 알아보자.
cp 명령어
리눅스에서 파일 복사(copy)하는 명령어에 대해 알아보자.
cp [옵션] [원본] [사본]
옵션
-a: 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.
-b: 복사할 대상이 이미 있을 경우 기존 파일을 백업하고 복사한다.
-d: 만약 복사할 원본이 심볼릭 링크일 때 심볼릭 자체를 복사한다.
-f: 만약 복사할 대상이 이미 있으면 강제로 지우고 복사한다.
-i: 만약 복사할 대상이 이미 있으면 사용자에게 물어본다.
-l: 하드링크 형식으로 복사한다.
-P: 원본 파일 지정을 경로와 같이했을 경우 그 경로 그대로 복사된다.
-p: 파일의 소유자, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사된다.
-r: 원본이 파일이면 그냥 복사되고 디렉터리라면 디렉터리 전체가 복사된다.
-s: 파일을 심볼릭 링크 형식으로 복사한다. 원본 파일이름을 절대 경로로 지정해야 한다.
-u: 복사할 대상이 있을 때 이 파일의 변경 날짜가 같거나 더 최근의 것이면 복사하지 않는다.
-v: 복사 상태를 보여준다.
-x: 원본과 대상 파일의 파일시스템이 다를 경우에는 복사하지 않는다.
-R: 디렉터리를 복사할 경우 그 안에 포함된 모든 하위경로와 파일들을 모두 복사한다.
[corej@localhost ~]$ ls Desktop mydir1
mydir1 디렉터리를 -a나 -r 옵션 없이 복사하면 디렉터리라서 복사되지 않는다.
[corej@localhost ~]$ cp mydir1 mydir2 cp: omitting directory `mydir1'
디렉터리여도 -a나 -r 옵션 넣으면 복사가 된다.
[corej@localhost ~]$ cp -r mydir1 mydir2 [corej@localhost ~]$ ls Desktop mydir1 mydir2
mv 명령어
리눅스에서 파일 이동(move)하는 명령어에 대해 알아보자.
파일을 이동하는 명령어로 mv 옵션은 cp 명령어와 비슷하다.
다른 점이 있다면 cp는 파일을 복사하는 것이고 mv는 파일 이동인데 이동 시 원본 파일이 삭제되는 점이다.
그래서 보통 파일이름을 변경할 때도 mv 명령어를 쓴다.
mv [옵션] [원본] [이동경로]
옵션
-b: 이동 경로에 같은 이름의 파일이나 디렉터리가 존재하면 기존 파일을 백업한 뒤에 이동한다.
-f: 이동 경로에 같은 이름의 파일이나 디렉터리가 존재하면 덮어쓸 때 묻지 않고 바로 덮어쓴다.
-i: 이동 경로에 같은 이름의 파일이나 디렉터리가 존재하면 덮어쓸 때 물어본다.
-v: 이동 상태를 표시한다.
hi.txt 파일을 이동시키는데 hello.txt로 파일이름까지 바꿔보자.
[corej@localhost ~]$ mv hi.txt ./mydir1/hello.txt