これは標準的な Unix の動作です。
/ パスの先頭にある は、ディスクのルート (またはファイルシステム ツリーの開始/最上位レベル) を表します。 Documents として ルートから外れていない、/Documents 見つかりません。
/Users はルート ディレクトリから離れているため、この問題は発生しません。
cd /Users/lukas/Documents を使用できます そのパスに変更します。
または、相対アドレス指定を使用することもできます。 Unix ベースのファイルシステムには、2 つの特別なディレクトリがあります:
.これは「このディレクトリ」を意味します..これは親ディレクトリを意味します。
/Users/lukas にいる場合 、 cd ./Documents 正しい場所に連れて行ってくれます。
あなたが /Users/Lukas/Documents にいたとしましょう /Users/Janes/Documents に行きたかった 、コマンド cd ../../Janes/Documents を発行できます - .. を使用 レベルを戻すため、新しい相対パスに入る前に 2 回実行します。
/Users/lukas 「絶対」パスです。先頭の / ファイルシステムのルート ディレクトリを表します。
lukas 「相対」パスです。ルートに固定されていないため、「current でこれを探す」ことを意味します ディレクトリ」。現在のディレクトリが /Users でない限り (または lukas を持つ他のディレクトリ )、これは失敗します。
それでは、あなたが /Users/lukas にいると仮定して、あなたの例を調べてみましょう :
$ cd Documents/
/Users/lukas/Documents
指定された相対パス => /Users/lukas 内のディレクトリ「Documents」に変更 .
$ cd /Documents
-bash: cd: /Documents: No such file or directory
指定された絶対パス => ディレクトリ /Documents に変更 .
$ pwd
/
これは、作業ディレクトリをルート ディレクトリ / に変更したことを示しています。 (ただし cd これを行うコマンドは示されていません)。
$ cd Users
/Users
指定された相対パス => / 内のディレクトリ「Users」に変更 .
$ cd /Users
/Users
指定された絶対パス => ディレクトリ /Users に変更 .
毎回重要なのは、先頭の / です .これでパスは絶対です。それがなければ、パスは相対です。すべての絶対パスが / で始まるため、このルールは明確です。 (ルートディレクトリは常に / と呼ばれるため ).
以下は、そのアルゴリズムを大まかに記述した疑似コードです:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
cd に渡す引数 このアルゴリズムを通過します。最終的に変更するディレクトリは、アルゴリズムが返すパスです。
さらに読む:
- Unix ファイルとディレクトリのチュートリアル
ジョセフ・L・ザカリー
「科学的プログラミング入門」