ディレクトリ「//」とは何ですか?


12

さまざまなLinuxマシンで次のことができます

cd /

そして

cd //

シェルは、対応するコマンドを使用した後、現在のディレクトリが「/」または「//」であると言います。

したがって、質問は次のとおりです。「/」と「//」の違いは何ですか。答えが「違いなし」の場合、「//」は「/」とは異なって表示されます。

ところで

cd ///
cd ////
cd /////

すべての結果、現在のディレクトリが「/」であるとシェルに表示されます

セッションの例を次に示します。

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
これは、bash固有の異常のようです。cd //cshまたはzshで試してみると、pwd「/」だけが表示されます
ダグハリス

興味深い-それはいくつかの光を
当てる

1
比較のために:cd //usr/bin「// usr / bin」を指定しますがcd /usr//bin、「/ usr / bin」(Bash)を指定します。
追って通知があるまで一時停止します。

回答:


14

男自身(チェスター・ラミー)に聞いみましょう:

E10)なぜ「cd //」は$ PWDを「//」のままにするのですか?

POSIX.2では、「cd」の説明で、現在の作業ディレクトリを正規化するときに、先頭の3つ以上のスラッシュを単一のスラッシュに置き換えることができると述べています。

これは、歴史的な互換性のためです。Unixの特定のバージョン、および初期のネットワークファイルシステムでは、// hostname / pathという形式のパスを使用して、サーバー「hostname」上の「path」にアクセスしていました。


ジョンTの(すでにかなり良い)ものよりもはるかに良い答え
innaM

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.