Mat*_*att 7 hard-link cp symlink
我试图了解cp --preserve=links
单独使用时的作用,从我的测试来看,它似乎正常复制了一个普通文件并取消了符号链接的引用,但它似乎与 cp -L 在单个文件上使用时具有相同的效果。
这是真的还是我遗漏了什么?
xhi*_*nne 11
该--preserve=links
选项不是指符号链接,而是指硬链接。它要求cp
保留正在复制的两个或多个文件之间的任何现有硬链接。
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Run Code Online (Sandbox Code Playgroud)
可以看到两个原始文件是硬链接的,它们的inode号是6034008。
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Run Code Online (Sandbox Code Playgroud)
您现在可以看到,没有--preserve=links
它们的副本有两个不同的 inode 编号:两者之间不再有硬链接。
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Run Code Online (Sandbox Code Playgroud)
现在您可以看到,使用--preserve=links
,这两个副本仍然是硬链接的,但是它们的 inode 编号是 6089617,这与原始文件的 inode 编号不同(与会cp --link
做的相反)。