0

我有包含以下代码的makefile。

ddd :
    @mkdir -p /full/path_new/to/new_dir
    @ln -fs /full/path_old/to/old_dir/private /full/path_new/to/new_dir/private

Linux ln 命令在目录taget 和父目录中创建链接。这意味着我有:

/full/path_new/to/new_dir:
private -> /full/path_old/to/old_dir/private

而且旧的也有链接

/full/path_old/to/old_dir/private
private -> /full/path_old/to/old_dir/private

因为我有类似的东西

/full/path_old/to/old_dir/private/private/private/private (...) endless

我应该如何使用 ln 命令仅在 new_dir 中有链接?

4

2 回答 2

1

您需要在创建之前删除现有链接:

ddd :
        @mkdir -p /full/path_new/to/new_dir
        @rm -f /full/path_new/to/new_dir/private
        @ln -fs /full/path_old/to/old_dir/private /full/path_new/to/new_dir/private
于 2015-06-12T14:54:39.427 回答
0

假设一个干净的状态,正确的方法是创建一个知道它正在创建哪个依赖项的目标,如果它已经存在则避免创建它。

ddd: /full/path_new/to/new_dir/private
/full/path_new/to/new_dir/private:
    mkdir -p /full/path_new/to/new_dir
    ln -s /full/path/to/old_dir/private /full/path_new/to/new_dir
于 2015-06-12T15:10:49.543 回答