cd (UNIX)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

cd(シーディー、change directory)は、現在のワーキングディレクトリ(カレントディレクトリ)を変更するためのUNIXまたはDOSコマンドである。cdシェル(UNIXではshtcshbashなど。DOSではCOMMAND.COM)に組み込まれることが多い。chdirとして実行可能な場合もある。

ディレクトリファイルシステム上の論理的な区分であり、ファイルを保持するために使われる。ディレクトリは他のディレクトリをも含めることができる。cdコマンドはサブディレクトリ(子ディレクトリ)に移動したり、親ディレクトリに移動したり、ルートディレクトリ(すべてのディレクトリの祖先ディレクトリ。UNIXでは/、DOSでは\)に一気に移動したり、ある与えられたディレクトリに移動したりすることができる。

次の図はUNIXファイルシステムの一部分を示している。1つのファイル ("text.txt")と3つのサブディレクトリを含むユーザのホームディレクトリ~で表される)が示されている。

Chdir example.png


もしカレントディレクトリがホームディレクトリ(~)であれば、「cd games」というコマンドを実行した後で「ls」と実行すると、例えば次のような結果が得られる。

me@host:~$ ls
workreports games encyclopedia text.txt
me@host:~$ cd games
me@host:games$

ユーザはこの時点で"games"ディレクトリにいる。 似たようなことをDOSで実行すると次のようになる。DOSにはバージョンによってホームディレクトリの概念が存在しないこともある。

C:\>dir
workreports <DIR> Wed Oct 9th 9:01
games <DIR> Tue Oct 8th 14:32
encyclopedia <DIR> Mon Oct 1st 10:05
text txt 1903 Thu Oct10th 12:43
C:\>cd games
C:\games>

cdは引数を与えられずに実行した場合、システムによって異なる振る舞いをする。例えばDOSではカレントディレクトリが表示される。UNIXではユーザのホームディレクトリに移動する。

バッチファイルシェルスクリプト内でcdが実行された場合の効果もシステムによって異なる。例えばDOSではバッチファイル内でcdが実行された場合バッチファイルを実行した側のカレントディレクトリも影響を受ける。それに対してUNIXはシェルスクリプトを実行した側のカレントディレクトリは変更されない。これは、UNIXにおいては通常シェルスクリプトはサブシェル内で実行されるためである。

外部リンク[編集]

  • cd(1) man page(SunOS リファレンスマニュアル 1 : ユーザーコマンド) - オラクル