【 cd 】 ディレクトリの変更 【 Linuxコマンドまとめ 】

2017年11月8日

「Linuxコマンドまとめ」カテゴリでは、Linuxのコマンドについて、基本的な実行例とオプションを分かりやすくまとめます。

cd」は現在の作業ディレクトリ(カレントディレクトリ)を変更するコマンドです。

cdコマンドの使い方

cdコマンドの書式は、以下の通りです。

cd [オプション] [ディレクトリへのパス]

あるいは

cd -

ディレクトリへのパスを指定せず実行した場合、通常は環境変数「HOME」に設定されているホームディレクトリに移動します。

cd -」と実行した場合、移動前のディレクトリに戻ります。

パス名には、カレントディレクトリからの相対パスか、ルートディレクトリ(/)から始まる絶対パスを指定します。

bashによるパス名展開、および親ディレクトリを表す「..」(ピリオド2つ)を使ってパス名を指定することもできます。パス名展開については、以下の記事を参照してください。

パス名の入力には、以下の記事で紹介している入力補完もよく使われます。

cdコマンドの主なオプション

-L
移動先がディレクトリのシンボリックリンクだった場合、シンボリックリンクをディレクトリとして移動する(デフォルトの動作)。
-P
移動先がディレクトリのシンボリックリンクだった場合、リンク先のディレクトリへ移動する。

「~/disk」が「/media/lintaro/USB-HDD」へのシンボリックリンクだった場合、「cd -L ~/disk」を実行するとカレントディレクトリは「~/disk」になります。一方、「cd -P ~/disk」を実行すると、カレントディレクトリは「/media/lintaro/USB-HDD」になります。
なお、「-P」が指定されていない場合は「-L」が指定された場合と同じ動作になります。

cdコマンドの実行例

# ホームディレクトリへ移動
$ cd ~

# ホームディレクトリへ移動
$ cd

# カレントディレクトリへ移動(エラーにはならないが移動しないので意味は無い)
$ cd .

# カレントディレクトリにあるworkディレクトリへ移動
$ cd work

# ルートディレクトリへ移動
$ cd /

# /etc/systemdへ移動
$ cd /etc/systemd

# 親ディレクトリへ移動
$ cd ..

# 親ディレクトリの親ディレクトリ(2階層上のディレクトリ)へ移動
$ cd ../..

# 2階層上のディレクトリにあるwwwディレクトリへ移動
$ cd ../../www

cdのヘルプ

cd: cd [-L|[-P [-e]] [[email protected]]] [dir]
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    
    Options:
      -L	force symbolic links to be followed: resolve symbolic
    		links in DIR after processing instances of `..'
      -P	use the physical directory structure without following
    		symbolic links: resolve symbolic links in DIR before
    		processing instances of `..'
      -e	if the -P option is supplied, and the current working
    		directory cannot be determined successfully, exit with
    		a non-zero status
      [email protected]	on systems that support it, present a file with extended
    		attributes as a directory containing the file attributes
    
    The default is to follow symbolic links, as if `-L' were specified.
    `..' is processed by removing the immediately previous pathname component
    back to a slash or the beginning of DIR.
    
    Exit Status:
    Returns 0 if the directory is changed, and if $PWD is set successfully when
    -P is used; non-zero otherwise.