ドキュメントによると、コマンドln -f
は既存の宛先ファイルを削除します。これは、シンボリックリンクを作成した場合、-fは宛先にある既存のシンボリックリンクを削除して上書きする必要があることを意味しますか?
DIR1を指すシンボリックリンク、たとえばLがあり、タイプしln -sf DIR2 L
ます。しかし、Lは依然としてDIR1を指しています。rm L
このコマンドがDIR2を指すリンクを作成した後でのみ。
ファイルへのシンボリックリンクを使用すると、期待どおりに動作します。
ディレクトリへのリンクの何が問題になっていますか?(Ubuntu 16.04.2LTSおよびWindowsWSLではbash4.3.48)
実行する場合:
ln -sf DIR2 L
これは、DIR1内にシンボリックリンクを作成しているため、LはDIR1を指し、lnはそれを逆参照して、を作成しL/DIR2 -> DIR1
ます。
以下:
rm -fr DIR1 DIR2 L
mkdir DIR1 DIR2
ln -v -s DIR1 L
ls -la L
ln -v -f -s DIR2 L
ls -la L
出力します:
'L' -> 'DIR1'
lrwxrwxrwx 1 runner runner 4 Oct 21 18:13 L -> DIR1
'L/DIR2' -> 'DIR2'
lrwxrwxrwx 1 runner runner 4 Oct 21 18:13 L -> DIR1
これを処理するには、superuser.comのこのスレッドの回答に--no-dereference
示されているオプションを使用します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加