ディレクトリの操作

16.6.2. ディレクトリの操作

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

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

これらの操作は、Finder では 11.5. フォルダの作成と活用 と対応します。

成功時は無言 — これまで lscalなど表示を目的とするするコマンドは、実行したら応答がありました。 一方、このページやこれ以降で紹介するファイル等を操作するコマンドは、エラーがなければ特にメッセージがありません。 動作結果を確認したい場合は、ls などを別途使う必要があります。

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

カレントディレクトリを変更するには、cd を利用します。

cd の後に引数として、変更後にカレントディレクトリにしたいディレクトリの名前を指定します。引数を何も指定しないと、カレントディレクトリは自分のホームディレクトリに戻ります。

cd ディレクトリのパス

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

cd /usr/bin
pwd
/usr/bin

cd /usr
pwd
/usr

cd ~
pwd
/home01/0000000000

なお、場合によっては移動先のディレクトリが存在してもカレントディレクトリの移動ができない場合があります。それにはパーミッションが関係しています。パーミッションについては、 16.6.4. パーミッションと実行ファイル で説明します。

exercise
教育用計算機システムのコマンドラインにおいて、/home/hwb/exercise/ にカレントディレクトリを変更してみましょう。ここのディレクトリには、ファイルやディレクトリ操作の練習のためのファイルやディレクトリが作成されています。
次のうち、/home/hwb/exercise ディレクトリに置かれていないディレクトリはどれでしょう。
  • taro
  • ichiro
  • hanako

一覧表示 #

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

ls パス

ls コマンドは、パス指定を省略した場合はカレントディレクトリが指定されたと解釈します。

相対パス名または絶対パス名( 16.6.1. パスの表記 参照)を指定して、他のディレクトリにあるファイルの一覧を表示することもできます。

ls Sites
images          index.html
ls ~/home01/0000000000/Sites
images          index.html

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

-a オプションの指定で、名前が .(ピリオド)で始まるファイルの一覧を表示することができます。 名前がピリオドで始まるファイルは、慣行として、隠しファイルと扱われ通常は (GUIでも) 表示されません。

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

上に表示されている ... は相対パス名の説明に登場したのと同じ、ls で表示したディレクトリ自身と、その親ディレクトリです。この二つのディレクトリ名は全てのディレクトリで表示されます (ただしルートディレクトリの .. はルートディレクトリ自身です)。これらは、慣習で表示されているもので、木構造の子ではありません。

種類を区別して表示 #

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

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

F は大文字であることに注意してください。UNIXのコマンドでは大文字と小文字は区別されます。

詳細情報を表示 #

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

ls -l Sites
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

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

カラー表示 #

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

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

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

ls -laF ~/Sites
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
教育用計算機システムにおいて、/home/hwb/exercise/taro/ の直下にあるディレクトリの個数はいくつでしょう。
  • 0
  • 1
  • 2

空のディレクトリ作成 #

ここでは、新しいディレクトリの作成と、中身が空のディレクトリの削除方法について説明します。複製、移動や、中身の入ったディレクトリの削除方法については、別ページ 16.6.3. ファイルの操作 で説明します。

新しい空のディレクトリの作成を作成するには、mkdir コマンドを利用します。以下に、カレントディレクトリの下に hoge ディレクトリを作る例を示します。

ls
hwb

mkdir hoge
ls
hoge    hwb

mkdir コマンドに -p オプションをつけると、2階層以上のディレクトリを一度に作ることができます。

mkdir piyo/fuga

mkdir: piyo: No such file or directory

通常 (-p オプションなしでは)、1階層のみディレクトリを作ることができますそのため。 piyo ディレクトリがない状態で上記のコマンドを実行すると「fuga ディレクトリを作る前提のpiyo ディレクトリがない」というエラーメッセージが出ます。

mkdir -p piyo/fuga
ls piyo
fuga

-p オプションをつけて実行すると、piyo ディレクトリと、その下にさらに fuga ディレクトリが作成されました。

空のディレクトリ削除 #

中身が空のディレクトリを削除するには rmdir コマンドを使います。

ls -F
hoge/ hwb piyo/
rmdir hoge

消えました。

ls -F
 hwb piyo/
rmdir piyo
rmdir: piyo: Directory not empty

上の例にある piyo ディレクトリは、中に fuga というディレクトリを持っていますので、rmdir コマンドでは削除できません。

パスの表記 ディレクトリの操作 ファイルの操作