web-dev-qa-db-ja.com

lnの原因://:ディレクトリですか?

ディレクトリをルートにリンクすると、次のエラーが発生します。

$ ln -s ~/inbox/ /
$ ln: //: Is a directory

Bashは/を追加することにより、ディレクトリパスをオートコンプリートします。私は成功せずに逃げようとしました。

$ ln -s ~/inbox /

しかし動作します。どうしてこれなの?

5
Igorio

pathname resolution では、末尾に/があることは、末尾に/.と同等です。つまり、このコンテキストでは、~/inbox/~/inbox/.と同等です。 。したがって、lnコマンドは、ルートディレクトリに.というリンクを作成しようとしています(当然のことながら失敗します)。

Zshを押すと、末尾の/が削除されます Space ディレクトリを完成させた後(そうしないように構成されていない限り)。これをbashで実行できるかどうかはわかりません。

それはまさにあなたが実行したものですか?

Is a directoryは、OSがEISDIRエラーを出力しているように見えます。

ディレクトリを指す既存のシンボリックリンクを上書きしようとしています。

$ cd $(mktemp -d)
$ mkdir dir
$ ln -s dir dir    # this creates dir/dir
$ ln -s dir dir    # this fails, because dir/dir already exists
ln: failed to create symbolic link `dir/dir': File exists

ディレクトリへのハードリンクを作成しようとしています。

$ cd $(mktemp -d)
$ mkdir dir
$ ln dir dirlink
ln: `dir': hard link not allowed for directory

実行していたものである場合、type lnまたはalias lnは何を出力しますか?

0
Mikel