cp -l 代替 cp -s 不起作用?

cp -l 代替 cp -s 不起作用?

我有一个指向核心文件的文件夹符号链接和一个包含我的改进内容的文件夹,如下所示:

  • 核心/-> /一些/遥远的/根/目录/核心/
    • 脚本_a.py
    • 特殊/script_b.py
    • 特殊/script_c.py
  • 核心改进/
    • 特殊/script_b.py

我想要做的是创建名为 Improved-core/ 的第三个目录(使用 bash 脚本),其中将包含 core-improvements/ 的内容和 core/ 的递归链接内容(我的意思是 /some/distant/root/directory/core/):

  • 改进的核心/
    • script_a.py -> /some/distant/root/directory/core/script_a.py
    • special/script_b.py (来自 core-improvements/)
    • 特殊/script_c.py -> /一些/遥远/根/目录/核心/特殊/script_c.py

如果我使用指向 script_a.py 的符号链接手动创建它,则 script_a.py 会从 /some/distant/root/directory/core/special/ 目录调用 script_b.py,而不是从 Improved-core/special/ 目录中调用。

所以我认为这里需要硬链接?


到目前为止,我创建了以下 bash 脚本,它对我来说运行良好,但它创建的是符号链接而不是硬链接:

cp -r core-improvements/ improved-core/ &&
cp -LnrsT core/ improved-core/

然后我尝试通过将 -LnrsT 切换为 -LnrlT 来创建硬链接而不是符号链接,但出现以下错误:

cp:无法创建到“/some/distant/root/directory/core/script_a.py”的硬链接“improved-core/script_a.py”:操作不允许

我现在完全不知道如何解决这个问题。

相关内容