14.4.2 ディレクトリの操作

ここでは,ディレクトリの操作や内部の一覧表示の方法について説明します.

  • カレントディレクトリの変更(cd コマンド)
  • ディレクトリやファイルの一覧表示(ls コマンド)
  • 空のディレクトリの作成と削除(mkdir, rmdir コマンド)

これらの操作は,Finder では hwb14.3.2 フォルダの操作 と対応します.

カレントディレクトリの変更

カレントディレクトリを変更するには,cd コマンドを利用します.
cd の後に引数として,変更後にカレントディレクトリにしたいディレクトリの名前を指定します.引数を何も指定しないと,カレントディレクトリは自分のホームディレクトリに戻ります.

cd (ディレクトリ名)return2

このコマンドによってカレントディレクトリを変更することを単に「移動する」と呼ぶこともあります.
例として,まず /usr/bin に移動し,その後親ディレクトリの /usr に移動し,最後にホームディレクトリに戻ってみます.
cd /usr/binreturn2
pwdreturn2
/usr/bin
cd /usrreturn2
pwdreturn2
/usr
cd ~return2
pwdreturn2
/home01/0000000000

なお,場合によっては移動先のディレクトリが存在してもカレントディレクトリの移動ができない場合があります.それにはパーミッションが関係しています.パーミッションについては,hwb14.4.5 パーミッションと実行ファイル で説明します.
exercise教育用計算機システムのコマンドラインにおいて,/mnt2/exercise/ にカレントディレクトリを変更してみましょう.ここのディレクトリには,ファイルやディレクトリ操作の練習のためのファイルやディレクトリが作成されています.
次のうち,/mnt2/exercise ディレクトリに置かれていないディレクトリはどれでしょう.(1)

一覧表示

あるディレクトリの中にあるファイルやディレクトリの一覧を表示するには,ls コマンドを使います.

ls (ディレクトリ名 or ファイル名)return2

ls コマンドは,何も指定しなければカレントディレクトリにあるファイルの一覧を表示します.
lsreturn2
Desktop         ECC             Movies          Public          windows Documents       Library         Music           Sites Downloads       Mail            Pictures        tex

相対パス名または絶対パス名(hwb14.4.1 ディレクトリ 参照)を指定して,他のディレクトリにあるファイルの一覧を表示することもできます.
ls Sites/return2
images          index.html
ls /home01/0000000000/Sites/return2
images          index.html

隠しファイルを含めて表示

-a オプションの指定で,名前が .(ピリオド)で始まる隠しファイルも含めたファイルの一覧を表示することができます.

ls -a Sitesreturn2
.               .DS_Store       .localized      index.html ..              ._images        images

上に表示されている . や .. は相対パス名の説明に登場したのと同じ,ls で表示したディレクトリ自身と,その親ディレクトリです.この二つのディレクトリ名は全てのディレクトリに存在します (ただしルートディレクトリの .. はルートディレクトリ自身です).ただし,木構造を考えるときはこれらは考慮に入れません.

種類を区別して表示

ここまでの一覧表示の仕方では,普通のファイルとディレクトリの区別がつきません.そこで,-F オプションを指定することによってファイルの種類を区別して表示させることができます.ディレクトリ名には後ろに /(スラッシュ)がつき,実行ファイルには *(アスタリスク)がつきます.

ls -F Sitesreturn2
images/         index.html
ls -F /opt/local/bin/ptexreturn2
/opt/local/bin/ptex*

くれぐれも F は大文字だということに注意してください.しつこいようですが,UNIXのコマンドでは大文字と小文字は区別されます.

詳細情報を表示

ファイルの詳細情報を表示するには,-l オプションを指定します.

ls -l Sites/return2
total 15 drwxr-xr-x@ 2 0000000000  student  1024  1 14  2004 images -rw-r--r--  1 0000000000  student  6161  8 29  2003 index.html

各行の意味について詳しくは後の hwb14.4.5 パーミッションと実行ファイル で説明します.

カラー表示

-G オプションを使うと,結果をカラー表示させることができます.

同時に複数のオプションの指定

以上説明したオプションは,いくつかまたはすべてを同時に指定することができます.

ls -laF /home01/0000000000/Sites/return2
total 37 drwxr-xr-x@  3 0000000000  student  1024  4 21  2005 ./ drwx------  23 0000000000  student  3072  3 6 11:52 ../ -rw-r--r--   1 0000000000  student  6148  4 21  2005 .DS_Store -rw-r--r--   1 0000000000  student    82  1 14  2004 ._images -rwxr-xr-x   1 0000000000  student     0  9 9 2003 .localized* drwxr-xr-x@  2 0000000000  student  1024  1 14  2004 images/ -rw-r--r--   1 0000000000  student  6161  8 29  2003 index.html

exercise教育用計算機システムにおいて,/mnt2/exercise/taro/ の直下にあるディレクトリの数はいくらでしょう.(1)

空のディレクトリの作成と削除

ここでは,新しいディレクトリの作成と,中身が空のディレクトリの削除方法について説明します.複製,移動や,中身の入ったディレクトリの削除方法については,次節 hwb14.4.3 ファイルの操作 で説明します.
新しい空のディレクトリの作成を作成するには,mkdir コマンドを利用します.以下に,カレントディレクトリの下に hoge ディレクトリを作る例を示します.

lsreturn2
hwb
mkdir hogereturn2
lsreturn2
hoge    hwb

mkdir コマンドに -p オプションをつけると,2階層以上のディレクトリを一度に作ることができます.
mkdir piyo/fugareturn2
mkdir: piyo: No such file or directory
mkdir -p piyo/fugareturn2
ls piyoreturn2
fuga

1行めの -p オプションなしで実行した結果を見ると,「piyo ディレクトリがない(ので,その下に fuga ディレクトリは作れない)」というエラーメッセージが出ています.しかし -p オプションをつけて実行すると,きちんと piyo ディレクトリと,その下にさらに fuga ディレクトリが作成されていることがわかります.
中身が空のディレクトリを削除するには rmdir コマンドを使います.上の例にある piyo ディレクトリは,中に fuga というディレクトリを持っていますので,rmdir コマンドでは削除できません.
lsreturn2
hoge hwb piyo
rmdir hogereturn2
lsreturn2
hwb piyo
rmdir piyoreturn2
rmdir: piyo: Directory not empty