25.6.2. ディレクトリの操作
ここでは、ディレクトリの操作や内部の一覧表示の方法について説明します。
- カレントディレクトリの変更(
cd
コマンド) - ディレクトリやファイルの一覧表示(
ls
コマンド) - 空のディレクトリの作成と削除(
mkdir
,rmdir
コマンド)
これらの操作は、Finder では 11.5. フォルダの作成と活用 と対応します。
成功時は無言 — これまでls
やcal
など表示を目的とするするコマンドは、実行したら応答がありました。 一方、このページやこれ以降で紹介するファイル等を操作するコマンドは、エラーがなければ特にメッセージがありません。 動作結果を確認したい場合は、ls
などを別途使う必要があります。
カレントディレクトリの変更 #
カレントディレクトリを変更するには、cd
を利用します。
cd
の後に引数として、変更後にカレントディレクトリにしたいディレクトリの名前を指定します。引数を何も指定しないと、カレントディレクトリは自分のホームディレクトリに戻ります。
このコマンドによってカレントディレクトリを変更することを単に「移動する」と呼ぶこともあります。
例として、まず /usr/bin
に移動し、その後親ディレクトリの /usr
に移動し、最後にホームディレクトリに戻ってみます。
/usr/bin
/usr
/home01/0000000000
なお、場合によっては移動先のディレクトリが存在してもカレントディレクトリの移動ができない場合があります。それにはパーミッションが関係しています。パーミッションについては、 25.6.4. パーミッションと実行ファイル で説明します。
/home/hwb/exercise/
にカレントディレクトリを変更してみましょう。ここのディレクトリには、ファイルやディレクトリ操作の練習のためのファイルやディレクトリが作成されています。次のうち、
/home/hwb/exercise
ディレクトリに置かれていないディレクトリはどれでしょう。`ls` コマンドを使って表示させてもいいですし、存在しないディレクトリに `cd` しようとするとエラーが表示されることを使ってもわかります。
一覧表示 #
あるディレクトリの中にあるファイルやディレクトリの一覧を表示するには、ls
コマンドを使います。
ls
コマンドは、パス指定を省略した場合はカレントディレクトリが指定されたと解釈します。
相対パス名または絶対パス名( 25.6.1. パスの表記 参照)を指定して、他のディレクトリにあるファイルの一覧を表示することもできます。
images index.html
images index.html
隠しファイルを含めて表示 #
-a
オプションの指定で、名前が .
(ピリオド)で始まるファイルの一覧を表示することができます。
名前がピリオドで始まるファイルは、慣行として、隠しファイルと扱われ通常は (GUIでも) 表示されません。
. .DS_Store .localized index.html
.. ._images images
上に表示されている .
や ..
は相対パス名の説明に登場したのと同じ、ls
で表示したディレクトリ自身と、その親ディレクトリです。この二つのディレクトリ名は全てのディレクトリで表示されます (ただしルートディレクトリの ..
はルートディレクトリ自身です)。これらは、慣習で表示されているもので、木構造の子ではありません。
種類を区別して表示 #
ここまでの一覧表示の仕方では、普通のファイルとディレクトリの区別がつきません。そこで、-F
オプションを指定することによってファイルの種類を区別して表示させることができます。ディレクトリ名には後ろに /(スラッシュ)がつき、実行ファイルには *(アスタリスク)がつきます。
images/ index.html
/opt/local/bin/ptex*
F
は大文字であることに注意してください。UNIXのコマンドでは大文字と小文字は区別されます。
詳細情報を表示 #
ファイルの詳細情報を表示するには、-l オプションを指定します。
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
各行の意味について詳しくは後の 25.6.4. パーミッションと実行ファイル で説明します。
カラー表示 #
-G
オプションを使うと、結果をカラー表示させることができます。
同時に複数のオプションの指定 #
以上説明したオプションは、いくつかまたはすべてを同時に指定することができます。
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
/home/hwb/exercise/taro/
の直下にあるディレクトリの個数はいくつでしょう。`ls -F /home/hwb/exercise/taro/` で 末尾に`/`がついたものの数です。
空のディレクトリ作成 #
ここでは、新しいディレクトリの作成と、中身が空のディレクトリの削除方法について説明します。複製、移動や、中身の入ったディレクトリの削除方法については、別ページ 25.6.3. ファイルの操作 で説明します。
新しい空のディレクトリの作成を作成するには、mkdir
コマンドを利用します。以下に、カレントディレクトリの下に hoge ディレクトリを作る例を示します。
hwb
hoge hwb
mkdir
コマンドに -p
オプションをつけると、2階層以上のディレクトリを一度に作ることができます。
mkdir: piyo: No such file or directory
通常 (-p
オプションなしでは)、1階層のみディレクトリを作ることができますそのため。
piyo ディレクトリがない状態で上記のコマンドを実行すると「fuga ディレクトリを作る前提のpiyo ディレクトリがない」というエラーメッセージが出ます。
fuga
-p
オプションをつけて実行すると、piyo ディレクトリと、その下にさらに fuga ディレクトリが作成されました。
空のディレクトリ削除 #
中身が空のディレクトリを削除するには rmdir
コマンドを使います。
hoge/ hwb piyo/
消えました。
hwb piyo/
rmdir: piyo: Directory not empty
上の例にある piyo ディレクトリは、中に fuga というディレクトリを持っていますので、rmdir コマンドでは削除できません。