
ディレクトリをに変更すると、//
非常に似ていますが、わずかに異なる特別なディレクトリに配置されているようです/
。ただし、スラッシュ()を追加しようとすると///
詰まります/
。
$ cd / ;pwd
/
$ cd // ;pwd
//
$ cd /// ;pwd
/
$ cd //// ;pwd
/
これは少し特別なようです//
。同じディレクトリとすべてのエントリがあっても、から返される文字列はまだ異なりますpwd
。なぜこれですか?私の作業ディレクトリはなぜでしょう//
か///
?
答え1
//
が適用される特別なケースです。「パス名」という用語のPOSIX定義:
複数の連続した文字は、正確に2つの先行文字がある場合を除いて、
<slash>
1と同じように扱われます。<slash>
<slash>
ほとんどのシステム//
と同じ/
ですが、POSIXによって異なります。
追加資料:
- //foo/barは/foo/barとどのようなシステムで異なっていますか?
- Linuxは複数の連続パス区切り文字(/home///username///files)をどのように処理しますか?
- Unix、「/」と「//」で始まるパスの違い
(最初のリンクが最高のようです。)