既存のシンボリックリンクディレクトリへのシンボリックリンクを作成するときにln -sが失敗するように指示しないのはなぜですか?

既存のシンボリックリンクディレクトリへのシンボリックリンクを作成するときにln -sが失敗するように指示しないのはなぜですか?

ランタイム(他のLinux Ubuntuバージョン):

>ln -s dir_1 symlink_dir
>ln -s dir_2 symlink_dir

失敗したと言わずに失敗します。ただし、ファイルに対して同じ操作を実行するか、オプションにvを追加すると、失敗したというメッセージが表示されます。

>ln -s file_1 symlinkg_file
>ln -s file_2 symlinkg_file

または

>ln -sv dir_1 symlink_dir
>ln -sv dir_2 symlink_dir

エラーメッセージで失敗します。

ln: failed to create symbolic link

これは私にとって非常に奇妙な行動のように見えますか?理由がありますか?

ベストアンサー1

2回目のプロセスではln失敗しないので

symlink_dir/dir_2 -> dir_2

シンボリックリンク

何かを作る:

ls -l symlink_dir/dir_2

そこに(おそらく壊れた)シンボリックリンクが表示されます。

lnこれは、ターゲットがディレクトリ(またはディレクトリへのシンボリックリンク)の場合に機能する方法です。

3番目のジョブはすでに内部ジョブ(別名)を持っているlnため失敗する可能性があります。dir_2symlink_dirdir_2

おすすめ記事