|
先ほどの「/usr/local/src/test.txt」のようにパスとファイル名を記述する方法は、階層が深いと入力が長くなってしまうという煩雑さが出てきます。このパスの記述を短縮する方法があります。これが相対パス指定です。先ほどのルートディレクトリのパスの記述は絶対パス指定と呼ばれ、必ずルートディレクトリを先頭にしてパスの記述を行います。それに対して相対パス指定は、現在自分のいる場所から考えて場所の指定を行う方法です。現在自分のいる場所は「カレント」と表現され、このカレントが相対パス指定の場合重要になってきます。例えばカレントが「/usr/local/src」だったとすると、パスの指定は「./test.txt」ですんでしまいます。この指定の先頭についている「./」という記述はカレントをあらわす「.」とデリミタの「/」の組み合わせです。つまりこの指定は「現在の場所のtest.txt」という指定になり、「/usr/local/src/test.txt」という指定をしたことと等しくなります。
※ この「./」は省略可能であるため、「test.txt」と単に指定した場合には「./test.txt」と自動的に読み替えられます。
相対パス指定にはカレントをあらわす「.」ともう1つの指定があります。それが「..」です。これは1つ上の階層を指す指定で、カレントから考えて1つ上のディレクトリを指定していることになります。例えばカレントが「/usr/local/src」で「../」と指定した場合は「/usr/local」を指定したことになります。これらの指定は組み合わせることも可能で、カレントが「/usr/local/src」で「./../..」と指定した場合は、カレントの1つ上の1つ上ということになり「/usr」を指定していることになります。相対パス指定と絶対パス指定は一長一短があるため、場合によって使い分けるということが必要です。
※ ちなみに「…」はありません・・・。

相対パス指定はあくまでカレントが基準になるので現在の位置を把握してディレクトリ構造を考えながら指定する必要がありますが、パスの記述を短く済ませることができます。それに対して絶対パス指定は必ずルートディレクトリから始まる絶対的な位置指定であるためパスの記述が長くなる可能性はありますが、カレントを意識せずにパスの指定を行うことができます。
パスの指定はコマンドを実行する様々な場面で利用します。このためコマンド実行を理解するにはこのパス指定の考え方を理解して、Linuxのディレクトリ構造を頭で思い描けるようになっておくとよいでしょう。
→第9回「シェルとコマンドの実行」 |