![이동은 소스 파일의 소유권을 유지하며 쓰기를 허용하지 않습니다.](https://linux55.com/image/41505/%EC%9D%B4%EB%8F%99%EC%9D%80%20%EC%86%8C%EC%8A%A4%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EC%86%8C%EC%9C%A0%EA%B6%8C%EC%9D%84%20%EC%9C%A0%EC%A7%80%ED%95%98%EB%A9%B0%20%EC%93%B0%EA%B8%B0%EB%A5%BC%20%ED%97%88%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
다음을 고려하십시오:
$ id # Me
uid=100(user1) gid=200(group1) groups=200(group1)
$ ls -l tnsnames.ora # So user1 has only read permission on below file.
-rw-rw-r-- 1 oracle dba 411024 Jul 28 2010 tnsnames.ora
$ cp tnsnames.ora tnsnames.ora_bak
$ cat tnsnames.ora_bak > tnsnames.ora # No write access
-bash: tnsnames.ora: Permission denied
$ cp -p tnsnames.ora tnsnames.ora_copy # Copy file and preserve mode, ownership, timestamps. Requires sudo to succeed completely.
$ ls -l tnsnames.ora_copy # Mode and timestamps preserved; ownership not preserved.
-rw-rw-r-- 1 user1 group1 411024 Jul 28 2010 tnsnames.ora_copy
$ mv tnsnames.ora tnsnames.ora_move
$ ls -l tnsnames.ora_move # Move preserves mode, ownership, timestamps.
-rw-rw-r-- 1 oracle dba 411024 Jul 28 2010 tnsnames.ora_move
$
고쳐 쓰다
$ ls -l # As pointed out by @Gilles, the source (which is also the destination here) directory has r-x mode which allows mv to work.
drwxrwxrwx 3 oracle dba 4096 Aug 11 20:38 oracle
- 이 명령은 어떻게
mv
파일을 이동하고 스키마, 소유권, 타임스탬프를 보존합니까cp
? - 또한 파일에 대한 쓰기 권한이 없으면 어떻게 가능합니까?변화사용된 파일의 위치(메타데이터)
mv
또는 다른 각도에서 볼 수 있습니다...mv
파일이 먼저 복사된 위치와 복사된 파일에 설정된 소유자/그룹을 가져오는 방법 및 소스 파일 권한을 삭제하는 방법 , 쓰기 권한이 없습니다..
OS/Bash/유틸리티 버전 정보:
$ echo $SHELL
/bin/bash
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
...
$ uname -a
Linux server1 2.6.18-371.8.1.el5 #1 SMP Fri Mar 28 05:53:58 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
$ cp --version
cp (GNU coreutils) 5.97
...
$ mv --version
mv (GNU coreutils) 5.97
...
답변1
mv
다른 파일 시스템 간에 파일을 이동하지 않는 한 파일은 복사되지 않으며 원본 파일은 삭제됩니다. mv
파일을 이동합니다.
파일을 이동하려면 이전에 있던 디렉터리에서 파일을 분리하고 파일을 배치하려는 디렉터리에 추가할 수 있는 권한이 필요합니다. 즉, 원본 디렉터리와 대상 디렉터리 모두에 대한 쓰기(및 실행) 권한이 필요합니다. 파일 자체를 수정하거나 액세스하지 않으므로 파일에 대한 특정 권한이 필요하지 않습니다. (비유: 상자를 열 수 있는 열쇠가 없어도 잠긴 상자를 이동할 수 있습니다.)
cp -p
파일에 대한 권한은 보존될 수 있고 유지되지만 일반적으로 파일의 소유권은 보존될 수 없습니다. 루트로 실행하고 있지 않기 때문에 cp
귀하나 귀하가 속한 그룹에 속하지 않은 파일을 생성할 수 없습니다.