次のコマンドを実行すると、期待どおりに機能し、src
fromへのシンボリックリンクが生成されますinclude/bb
。
ln -sf ../src include/bb
src
ただし、同じコマンドを再度呼び出すと、akaに追加のシンボリックリンクが生成されます。include/bb
src/src
これを防ぐにはどうすればよいですか?
編集する:
明らかに、ln
これは2回呼び出されたときに発生し、セミコロンは最終的にそれとは何の関係もありません。
これを発生させる一連のコマンドは次のとおりです。
mkdir test
cd test
mkdir src
touch src/main.cpp
mkdir include
ln -sf ../src include/bb
ln -sf ../src include/bb
ベストアンサー1
ln -s ../src include/bb
include/bb
../src
参照(その場所に基づいて)という名前のリンクを作成するか、include/bb/src
参照../src
(その場所に基づいて)ファイルを生成します。後者include/bb
は存在し、ディレクトリ(実際にまたはディレクトリへのリンク)の場合です。
したがって、コマンドを一度実行すると、ディレクトリであるディレクトリ対ディレクトリをinclude/bb
指すsrc
リンクが作成されます。したがって、次にコマンドを実行すると、名前付きの新しいリンクがディレクトリに追加されます。include
include/bb
src
とは何の関係もありません;
。
使用しようとすることもできます。
ln -sTf ../src include/bb
代わりに(by -T
)はln
既存のファイルをinclude/bb
通常のファイルとして処理するように指示し(ディレクトリを参照するリンクであっても)、(by -f
)ファイルを強制的に置き換えます。