cp --preserve=links
단독으로 사용하면 어떤 효과가 있는지 이해하려고 노력 중입니다 .
cp -L
테스트해본 결과 일반 파일을 복사하고 심볼릭 링크를 정상적으로 역참조하는 것으로 보이지만 단일 파일에 사용할 때와 동일한 효과가 있는 것 같습니다 .
이것이 사실입니까, 아니면 제가 뭔가를 놓치고 있는 걸까요?
답변1
이 --preserve=links
옵션은 기호 링크를 참조하지 않고 하드 링크를 참조합니다. cp
복사되는 두 개 이상의 파일 사이의 기존 하드 링크를 유지 해야 합니다 .
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
두 원본 파일이 하드 링크되어 있고 해당 아이노드 번호가 6034008임을 알 수 있습니다.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
이제 사본 없이 --preserve=links
두 개의 서로 다른 inode 번호가 있음 을 확인할 수 있습니다. 둘 사이에는 더 이상 하드 링크가 없습니다.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
이제 를 사용하면 --preserve=links
두 복사본 모두 여전히 하드 링크되어 있지만 해당 inode 번호는 6089617이며 이는 원본 파일의 inode 번호와 다릅니다(예: 경우와 반대 cp --link
).
답변2
매뉴얼 페이지를 테스트하고 읽은 후 일부 상충되는 정보를 얻었습니다. 방금 몇 가지 테스트를 수행한 결과 다음을 발견했습니다.
[root@el7-1 dest]# ls -l
total 0
lrwxrwxrwx. 1 root root 16 Aug 18 16:51 test1.txt -> ../src/test1.txt
다음 명령은 링크를 참조합니다.
cp test1.txt test2.txt
cp -L test1.txt test2.txt
cp --preserve=link test1.txt test2.txt
다음 명령은 심볼릭 링크 자체를 복사합니다.
cp -P test1.txt test2.txt