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)をどのように処理するかを参照してください。