问题
使用cp -H
或复制文件时cp -L
,我得到相同的结果:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
此处的答案将这两个选项描述为与结合使用时类似的UNLESS -R
。不适合我。软链接文件和硬链接文件将成为它们指向源文件的重命名副本。
问题:
cp -H
和的正确用法是cp -L
什么?这是预期的行为吗?
我试图解决的问题:
man cp
告诉我两种选择都完全相同,但是info cp
的措辞使我更加困惑。也许可以帮我分解一下:
-H
如果命令行参数指定了符号链接,则复制它指向的文件而不是符号链接本身。但是,复制(保留其性质)通过递归遍历遇到的任何符号链接。
这听起来像是我的矛盾:我猜想» 符号链接的性质 «是指向某处…
-L, --dereference
从符号链接复制时,请遵循它们。使用此选项时,cp
无法创建符号链接。例如,源树中的符号链接(到常规文件)将被复制到目标树中的常规文件。
我确实知道符号链接不是常规文件,但是...我承认我对这里的解释充满了挑战。
@Mikel我尝试复制目录的内容并复制包含内容本身的目录,并且得到了完全相同的结果。另外:我在前面坐了很长时间,
—
erch 2013年
info cp
努力弄清楚此选项中的单词选择实际上意味着什么– 以及该帖子的内容。该帖子还包含来自的实际用语info cp
-因此,我必须至少打开它...;)
info cp
,搜索-R
。它说,Copy directories recursively.
但是您正在测试非目录。区别在于要复制的目录内部内容,而不是命令行参数。