我有此文件夹,/full/path/sourceFolder
其中包含以下文件:
full/path/sourceFolder/fileA /full/path/sourceFolder/copyA -> fileA /full/path/sourceFolder/copyB
您可以看到符号链接指向同一文件夹中的文件,并且不使用完整路径,而是依赖相对路径进行链接。
现在,我需要一个复制命令,将源文件夹中名为 copy* 的所有文件复制到目标文件夹。当我复制文件 copyA 时,它应该复制符号链接的源,即 fileA,但保留名称 copyA。复制命令也适用于复制文件 copyB。
这能做到吗?
我尝试了这些命令,但是它不起作用,主要是因为我的参考是相对的:
cp -rf --preserve=links /full/path/sourceFolder/copy* /target/path/ cp -RP /full/path/sourceFolder/copy* /target/path/ cp -Hrf /full/path/sourceFolder/copy* /target/path/ cp -Lrf /full/path/sourceFolder/copy* /target/path/
我没什么主意了,实现这一目标的最优雅的方法是什么?
答案1
以下将复制带有符号链接的源文件,但复制引用的文件失败。
cp -d /full/path/sourceFolder/copy* /target/path/
下面还将复制引用的文件
cp -d /full/path/sourceFolder/file* /target/path/
-d 选项是 –no-dereference –preserve=links 的快捷方式