cd
でスペルを間違えたとき、端末で作業していました ルートへ(/
)。誤って、//
と入力しました そして私はターミナルに入った:
[email protected]://#
pwd
と入力すると 、応答//
を取得します しかし、ls -s
と入力すると /
と同じリストを取得しました ディレクトリ。
2つ以上入力する場合、つまり///
あなたが得る:
[email protected]:/#
常に1つの/
2を除く。違いはありますか?//
とは何ですか? のために?
ベストアンサー
/
//
と同等です
POSIX仕様から(強調を追加):
3.267パス名
ファイルを識別するために使用される文字列。
POSIX.1-2008のコンテキストでは、パス名は、終了ヌルバイトを含む
バイトを含む{PATH_MAX}バイトに制限される場合があります。オプションの開始<slash>
があります 文字の後に、<slash>
で区切られた0個以上のファイル名が続きます 文字。パス名には、オプションで1つ以上の末尾の<slash>
を含めることができます。 文字。 複数の連続する<slash>
文字は
1つの<slash>
と同じであると見なされます 、
先頭に2つある<slash>
の場合を除く 文字。
そして:
4.12パス名の解決
…
単一の<slash>
で構成されるパス名 プロセスのルート
ディレクトリに解決されます。 nullパス名は
正常に解決されません。 パス名が2つの連続する<slash>
で始まる場合 文字、
先頭の<slash>
に続く最初のコンポーネント 文字は
実装定義の方法で解釈される場合がありますが、
2つ以上の先頭の<slash>
文字は単一の<slash>
として扱われます キャラクター。
例外(cygwinとディレクトリ)の詳細については、Linuxが複数の連続するパス区切り文字(/ home //// username /// file)をどのように処理するかを参照してください。