/Users/lukas
「絶対」パスです。先頭/
はファイルシステムのルートディレクトリを表します。
lukas
「相対」パスです。ルートに固定されていないため、「現在のディレクトリでこれを探す」ことを意味します。現在のディレクトリ/Users
(またはその他のディレクトリが含まれるディレクトリlukas
)でない限り、これは失敗します。
だから、あなたがいると仮定して、例を探ってみましょう/Users/lukas
:
$ cd Documents/
/Users/lukas/Documents
指定された相対パス=>内部の「Documents」ディレクトリに変更し/Users/lukas
ます。
$ 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
このアルゴリズムを通過します。最終的に変更するディレクトリは、アルゴリズムが返すパスです。
参考文献: