cp -H vs cp -L(什么是“命令行”符号链接?)

bar*_*sta 9 linux symbolic-link

我的操作系统在 cp 的手册页中说明了以下内容:

   -H     follow command-line symbolic links

   -L, --dereference
          always follow symbolic links
Run Code Online (Sandbox Code Playgroud)

我很难弄清楚什么是“命令行符号链接”。

Den*_*nis 16

没有命令行符号链接这样的东西。手册页指的是出现在命令行上的链接,即作为cp命令的参数。

没有-R开关,行为cp -Hcp -L是相同的。

使用该-R开关,cp -H仅取消引用cp命令本身中出现的符号链接,同时-L取消引用递归复制目录中的符号链接。

命令

cp -R -H source/ dest/
Run Code Online (Sandbox Code Playgroud)

将复制目录source及其所有内容到目录dest 中。如果source是指向目录的符号链接,cp 将取消引用该符号链接,即复制指向的目录。但是,如果 cp 在source的子目录中遇到任何符号链接,它将在目标文件夹中创建符号链接。

命令

cp -R -L source/ dest/
Run Code Online (Sandbox Code Playgroud)

行为类似。但是,它也会取消引用source子目录中的符号链接,即复制这些符号链接指向的文件。