りなっくすとらずぱい!

Raspberry Pi初心者に向けた各コマンドの説明、プログラムの作り方について紹介しています!

cd - ディレクトリを移動する & 絶対/相対パスについて

f:id:ibuquicallig:20190509181834p:plain

この記事ではcdコマンドの基本的な使い方と例、そして絶対/相対パスについて解説しています。

前の記事

コマンドについて

cdコマンドで、現在いるディレクトリから別のディレクトリへと移動することができます。既にWi-Fiセットアップの時に使ったことのあるコマンドですね!オプションもほとんどなくディレクトリ移動に特化したコマンドです。

Change Directory(ディレクトリ変更)の頭文字をとったコマンド名です。

cd [ディレクトリ名]

cd [ディレクトリ名]とすることで指定したディレクトリへ移動することができます。

$ pwd
/home/taneyats

$ cd /usr/share
$ pwd
/usr/share

pwdコマンドを使用すると現在のディレクトリを標準出力してくれます。

ディレクトリを移動するとそのディレクトリ内のファイルなどを操作することが容易になります。後で説明する絶対パスでファイルなどを指定すれば、ディレクトリを移動する必要はないのですが、階層が深ければ深いほどコマンドが長くなってしまうので長時間作業する場合にはcdで移動してしまうほうが良いです。

ホームディレクトリへ移動する

ホームディレクトリへ帰るためには、ディレクトリ名を指定せずにcdコマンドを実行するだけでOKです。

$ pwd
/usr/share

$ cd
$ pwd
/home/taneyats

$ cd ~/
$ pwd
/home/taneyats

もしくはホームディレクトリを表す~/を指定してもOKです。

一つ上のディレクトリへ移動する

先ほどの~/と同じく、特定のディレクトリを表す書き方がもう二つあります。./は、現在のディレクトリを表し、../一つ上の階層のディレクトリ(親ディレクトリ)を表します。

cdコマンドでは./単体と組み合わせて使用することはあまりありませんが、../とはよく組み合わせて使用します。また../../と繋げることでn階層上のディレクトリへと移動することもできます。

$ cd project/hogehoge/fugafuga/log/error
$ pwd
/home/taneyats/hogehoge/fugafuga/log/error

$ cd ../
$ pwd
/home/taneyats/hogehoge/fugafuga/log/

$ cd ../../
$ pwd
/home/taneyats/hogehoge
...

パス(path)について

Linuxではファイルやディレクトリへの道筋を指定する方法が2つあります。それが絶対パス相対パスです。「パス」とは「小道」という意味のある英単語です(passではないですよ!)

絶対パス

絶対パスとは、ルートディレクトリから見てどこにファイルが存在しているのかを表す表記方法です。Linuxのファイル構造は木構造となっておりすべてのファイル・ディレクトリは必ずルートディレクトリ(/ディレクトリ)内に収まっています。rootは根っこ、根源という意味なので英語だとそのまんまです!

この表記方法の利点は、どんなディレクトリにいても必ず指定したファイルなどを参照することができる点です。ここまでの解説ではほぼすべてのcdコマンドでこちらの絶対パス方式で指定してきました。

$ cd /usr/share
$ cd /home/taneyats
$ cd /

また、バッチファイル(.shファイルなど)内でコマンドを使用するときには絶対パスでの指定が現場では使用されがちです。ある条件下で万が一コマンドへのパスが通っていない場合でも確実に実行できるためです。

プログラム内でもあるスクリプトやファイルを参照するときには基本的には絶対パスで指定しておくほうが不慮の事故の発生を抑えることができます。

相対パス

相対パスとは、現在いるディレクトリからみてどこにファイルが存在しているのかを表す表記方法です。現在いるディレクトリが異なれば正しく参照できなくなります。この表記方法でcdなどを使う場合には特定のプロジェクト内を移動するときなんかに使います。

現在いるディレクトリと親子のディレクトリ構造がある程度頭に入っていないと移動しづらいのですが、絶対パスで指定するよりも記述量が少なくて済みます。

$ cd project/hogehoge/fugafuga/log/error
$ pwd
/home/taneyats/hogehoge/fugafuga/log/error

$ cd ../
$ pwd
/home/taneyats/hogehoge/fugafuga/log/

$ cd ../../
$ pwd
/home/taneyats/hogehoge
...

毎回/home/taneyats/ ....と打たなくても済むようになります。

最後に

lsコマンドと組み合わせることによって自在にディレクトリ間を移動することができるようになりましたね!!処理を実行するためのコマンドではないですが、このコマンドはLinuxユーザーなら必ず使えないといけません。。。

どこでも移動できるということなので、興味のある方は/etc/というディレクトリ内にある設定ファイルとか/var/log/内にある各種ログを見てみても面白いかもしれません。ファイルの中身を確認するコマンドはlessというものがあります。

次の記事

vimの使い方について