가끔 root 유저로 파일 복사 및 작업을 할때
cp 해놓고 chown으로 오너와 그룹을 변경하는 경우가 있다 ㅜ.ㅜ
퍼미션이 복잡한 경우가 있어 주로 tar로 묶어 넘기는 방법을 이용했었지만
요런 방법도 한번 이용해 보자
[root@support ~]# cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
...
...
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] preserve the specified attributes (default:
mode,ownership,timestamps), if possible
additional attributes: context, links, xattr,
all
...
...
-p 옵션이 있는데 파일생성시간, ownership, mode 모두 변경하지 않고 그대로 복사한다
cp a b 로 하면 a가 2015.1.1 생성된 파일이고 2015.1.2 일에 cp를 한다면
a는 2015.1.1일로 timestamp가 찍히고 b는 2015.1.2일로 timestamp가 찍힌다
그러면 chown으로 ownership포함 원래 속성에 맞게 변경을 해줘야 하는데 파일이 100개가 넘어간다면 상당히 복잡하고 귀찮다
아래 테스트 결과를 보자..
[root@support html3]# ls -arlt
total 108
-rw-r--r-- 1 apache root 30 Jun 26 2014 VERSION
-rw-r--r-- 1 apache root 306 Jun 26 2014 README
-rw-r--r-- 1 apache root 20166 Jun 26 2014 install.php
-rw-r--r-- 1 apache root 182 Jun 26 2014 index.php
-rw-r--r-- 1 apache root 19091 Jun 26 2014 feed.php
-rw-r--r-- 1 apache root 2321 Jun 26 2014 doku.php
-rw-r--r-- 1 apache root 18092 Jun 26 2014 COPYING
drwxr-xr-x 2 apache root 4096 Sep 2 17:11 bin
drwxr-xr-x 12 apache root 4096 Sep 2 17:11 data
drwxr-xr-x 6 apache root 4096 Sep 2 17:11 inc
drwxr-xr-x 2 apache root 4096 Sep 2 17:11 dokuwiki
drwxr-xr-x. 9 root root 4096 Sep 2 19:41 ..
drwxr-xr-x 8 root root 4096 Sep 3 09:00 .
drwxr-xr-x 8 apache root 4096 Sep 3 09:00 lib
drwxr-xr-x 2 apache root 4096 Sep 19 16:48 conf
[root@support html3]# id
uid=0(root) gid=0(root) groups=0(root)
파일들이 apache:root로 되어있다..
복사를 해보면?
[root@support html3]# cp README README_without_p_option
[root@support html3]# cp -p README README_with_p_option
[root@support html3]# ls -arlt
total 116
-rw-r--r-- 1 apache root 30 Jun 26 2014 VERSION
-rw-r--r-- 1 apache root 306 Jun 26 2014 README_with_p_option
-rw-r--r-- 1 apache root 306 Jun 26 2014 README
-rw-r--r-- 1 apache root 20166 Jun 26 2014 install.php
-rw-r--r-- 1 apache root 182 Jun 26 2014 index.php
-rw-r--r-- 1 apache root 19091 Jun 26 2014 feed.php
-rw-r--r-- 1 apache root 2321 Jun 26 2014 doku.php
-rw-r--r-- 1 apache root 18092 Jun 26 2014 COPYING
drwxr-xr-x 2 apache root 4096 Sep 2 17:11 bin
drwxr-xr-x 12 apache root 4096 Sep 2 17:11 data
drwxr-xr-x 6 apache root 4096 Sep 2 17:11 inc
drwxr-xr-x 2 apache root 4096 Sep 2 17:11 dokuwiki
drwxr-xr-x. 9 root root 4096 Sep 2 19:41 ..
drwxr-xr-x 8 apache root 4096 Sep 3 09:00 lib
drwxr-xr-x 2 apache root 4096 Sep 19 16:48 conf
-rw-r--r-- 1 root root 306 Jan 2 14:10 README_without_p_option
drwxr-xr-x 8 root root 4096 Jan 2 14:10 .
[root@support html3]#
결과를 보면 알겠지만 cp -p는 파일 속성을 전혀 건들이지 않고 복사를 하고
-p옵션은 뺀 그냥 cp는 ownership, timestamp 모두 변경되어 별도로 chown으로 apache:root로 조정을 해줘야 한다
필요한 경우가 많지 않겠지만
가끔 필요한 경우를 생각해 '아! 이런것도 있었지!'라고 알아두기로 하자
'Technical posts > UNIX & LINUX' 카테고리의 다른 글
@(골뱅이)가 줄바꿈이 되는경우 (0) | 2014.12.04 |
---|