既存のファイルをターゲットファイルにシンボリックリンクできないのはなぜですか? [コピー]

既存のファイルをターゲットファイルにシンボリックリンクできないのはなぜですか? [コピー]

私が言うことをよりよく説明する例があります。

$ touch tas
$ ln -s /etc/leviathan_pass/leviathan3 /tmp/l2/tas
ln: failed to create symbolic link '/tmp/l2/tas': File exists

デフォルトでは、リンクするファイルが存在しない場合にのみシンボリックリンクを作成できます。ハードリンクについて話しながら問題を理解します。 inodeの競合を引き起こす可能性があるため、2つの異なるファイルをリンクできません。したがって、コマンドの実行中にファイルを生成する必要があり、両方が「指定」されているとします。 「を同じinodeに)。今、ソフトリンクについて話しているとき、それは私には理解されていません。シンボリックリンクはinodeとは何の関係もありません。

助けてくれてありがとう。

答え1

デフォルトでは、このコマンドはln既存のファイルを削除しません。ln -sf TARGET LINK_NAMEシンボリックリンクを使用して、ターゲットパス(LINK_NAME)を強制的に上書きできます。

ハードリンクでLINK_NAMEを無視できますln -f TARGET LINK_NAME。 inode 衝突の説明は意味がありません。ファイルのみを交換してください。あなたの言葉が部分的に正しいターゲットハードリンクが最初に存在する必要があります。

関連情報