Metadata
Title
17.6.2. ディレクトリの操作
Category
general
UUID
3d188468ee1c4259a2da255c3717a6d7
Source URL
https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/fs/ope-dir/
Parent URL
https://hwb.ecc.u-tokyo.ac.jp/hwb2023/literacy/email/
Crawl Time
2026-03-23T10:18:50+00:00
Rendered Raw Markdown

17.6.2. ディレクトリの操作

Source: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/applications/shell/fs/ope-dir/ Parent: https://hwb.ecc.u-tokyo.ac.jp/hwb2023/literacy/email/

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

これらの操作は、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

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

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

ls コマンドを使って表示させてもいいですし、存在しないディレクトリに cd しようとするとエラーが表示されることを使ってもわかります。

一覧表示 #

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

ls パス

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

相対パス名または絶対パス名(17.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

各行の意味について詳しくは後の17.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

教育用計算機システムにおいて、/home/hwb/exercise/taro/ の直下にあるディレクトリの個数はいくつでしょう。

ls -F /home/hwb/exercise/taro/ で 末尾に/がついたものの数です。

空のディレクトリ作成 #

ここでは、新しいディレクトリの作成と、中身が空のディレクトリの削除方法について説明します。複製、移動や、中身の入ったディレクトリの削除方法については、別ページ17.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 コマンドでは削除できません。