Skip to content

CD / チェンジディレクトリ

このコマンドはディレクトリを移動するときに用います。


基本

~/ホームディレクトリにあるabcというディレクトリにアクセスする場合はこの様になります。

# /home/user から /home/user/abcにアクセスしたい

user@machine:~$  cd abc
では確認してみましょう。

user@machine:~/abc$  pwd
/home/user/abc
しっかり/home/user/abcに移動できていますね。

では次はホームディレクトリからドキュメントにあるtxtディレクトリに行くとします。

# /home/user から /home/user/Documents/testにアクセスしたい

user@machine:~$  cd Documents/text
では確認してみましょう。
user@machine:~/Documents/text$  pwd
/home/user/Documents/text
しっかり/home/user/Documents/txtに移動できていますね。
ディレクトリの中のディレクトリに行くときは/で区切ります。

ホームディレクトリに移動

上で/home/user/Documents/txtに移動しました。
ここから~$ホームディレクトリに戻ろうと思います。

方法1 "~/" を使う

# /home/user/Documents/txt から /home/userに
user@machine: ~/Documents/text$ cd ~/
では確認してみましょう。
user@machine:~$  pwd
/home/user
しっかり/home/userに移動できていますね。

方法2 "../../" を使う

# /home/user/Documents/txt から /home/userに
user@machine: ~/Documents/text$ cd ../../
では確認してみましょう。
user@machine:~$  pwd
/home/user
しっかり/home/userに移動できていますね。


"~/" と "../../" の違い

"~/" と "../../"どちらもちゃんとホームディレクトリに戻ってこられました。
ではどんな違いがあるのでしょうか?

・"~/"
"~/"はホームディレクトリを表しています。
なので、どんなディレクトリにいようとcd ~/と打てば、ホームディレクトリに速攻で戻ってこられます。

・"../../"
"../../"はそもそも../を二つ並べただけです。
では、../はなんでしょう?
答えは、 一つ前のディレクトリに戻る でした。

そのため、/home/user/Documents/txtで一度しか打たないと/home/user/Documentsで止まってしまいます。
また、/home/user/Documents/txtで三度打つと/homeまで戻ってしまいます。

絶対pathで移動

さっきまではxxx/yyyの様な感じでpathを指定していました。
このやり方は 相対path といいます。
相対pathは今いる位置(directory)からみた相対位置を指定します。
例えば...

# /home/user から /home/user/Documents/text/minecraft

user@machine:~$  cd Documents/text/minecraft
user@machine:~/Documents/text/minecraft$  pwd
/home/user/Documents/text/minecraft



# /home/user/Documents/text/minecraft から /home/user/Documents/logs

user@machine:~/Documents/text/minecraft$  cd ../../logs
user@machine:~/Documents/logs$  pwd
/home/user/Documents/logs
しかし、/home/user/aaa/bbb/ccc/dddから/usr/local/binに移動したいとすると、最短でもcd ~/../../usr/local/binと長くなってしまいます。
これでは間違えてしまうと地獄なので、こういう時は下記のやり方をやります。

頭に/をつけた/xxx/yyyこれを 絶対path といいます。
絶対pathではこの様に移動します。

# /home/user/aaa/bbb/ccc/ddd から /usr/local/bin

user@machine:~/aaa/bbb/ccc/ddd$  cd /usr/local/bin
user@machine:/usr/local/bin$  pwd
/usr/local/bin
とてもスッキリした移動方法になりましたね〜
これが絶対pathでの移動方法です。

ちなみに、cd /と打つとどこにいてもルートディレクトリ(root directory)に連れて行かれます。

user@machine:~/aaa/bbb/ccc/ddd$  cd /
user@machine:/$  pwd
/

user@machine:~/Documents/text$  cd /
user@machine:/$  pwd
/