ファイルとディレクトリの探索

■lsコマンドを使ったディレクトリの木の探検

ファイルとディレクトリの木の探検に出かける。それには、ls コマンド(ls という名前のプログラム)を使う。ls コマンドは、ディレクトリの内容を表 示するプログラムである。各自で、次のようなことをやってみるとよい。

◆ls /

次のように打つと、ルート・ディレクトリの内容が表示される。
----------------------------------------------------------------------
% ls / [←]
TT_DB       devices     kernel      net         sbin        vol
bin         etc         lib         opt         tmp         xfn
cdrom       export      lost+found  platform    usr
dev         home        mnt         proc        var
% []
----------------------------------------------------------------------

◆ls -l /

ls コマンドには、-l (long)というオプションがある。次のように打つと、や はりルート・ディレクトリの内容が表示るが、-l を付けた効果で長く表示さ れる。
----------------------------------------------------------------------
% ls -l / [←]
total 53
drwxr-xr-x   2 root          512 Oct 31 00:08 TT_DB
lrwxrwxrwx   1 root            9 Oct 30 23:26 bin -> ./usr/bin
drwxr-xr-x   3 root          512 Feb 14 02:48 cdrom
drwxrwxr-x  16 root         3584 Feb 14 02:47 dev
drwxrwxr-x   4 root          512 Oct 30 23:54 devices
drwxrwxr-x  23 root         3072 Feb 14 02:48 etc
drwxrwxr-x   2 root          512 Oct 30 23:50 export
dr-xr-xr-x   2 root            6 Mar 20 00:07 home
drwxr-xr-x   9 root          512 Oct 30 23:27 kernel
lrwxrwxrwx   1 root            9 Oct 30 23:26 lib -> ./usr/lib
drwx------   2 root         8192 Oct 30 23:23 lost+found
drwxrwxr-x   3 root          512 Oct 31 00:13 mnt
dr-xr-xr-x   2 root            2 Mar 20 00:07 net
drwxrwxr-x  10 root          512 Feb 14 01:50 opt
drwxr-xr-x   3 root          512 Oct 30 23:28 platform
dr-xr-xr-x   2 root        15552 Mar 20 00:07 proc
drwxrwxr-x   2 root          512 Dec 12 00:40 sbin
drwxrwxrwt   6 sys           702 Mar 19 22:21 tmp
drwxrwxr-x  28 root         1024 Nov 25 15:58 usr
drwxrwxr-x  18 root          512 Oct 31 00:03 var
dr-xr-xr-x   6 root          512 Feb 14 02:48 vol
dr-xr-xr-x   2 root            2 Mar 20 00:07 xfn
% []
----------------------------------------------------------------------
ls -l の結果で、一番左端の文字をみることでファイルの種類がわかる。
-       ファイル
d       ディレクトリ
l       シンボリック・リンク
次の9文字は、ファイルの属性の1つで、ファイルの許可された操作を表わし ている。rwxrwxrwx の9文字は、次の順番に左から3文字ずつ区切って解釈す る。 rwx は、それぞれ次のような意味である。
r       内容を読む(read)ことができる
w       内容を書き込む(write)ことができる
x       内容を(プログラムとして)実行する(execute)ことができる
        (ファイルの場合)
x       検索すことができる(ディレクトリの場合)
r,w,x が来るべき所に、「-」が来ている時には、その操作が許可されていな いことを意味する。

第2カラムの数字は、リンク数と呼ばれていて、ファイル名の数を表わしてい る。普通は気にしなくてもよい。

第3カラムの文字は、ファイルの所有者のログイン名である。ログイン名とは、 ログインの時に login: に対して打ち込む文字列である。ここで、rootとはシ ステム管理者のログイン名で、ルート・ディレクトリのルートとは関係ない。

第4カラムの文字は、ファイルの大きさ(バイト数)である。

第5カラム〜第7カラムは、ファイルが最後に更新された時刻(日付)を表わ している。

第8カラムは、ファイル名である。

◆ls -l ~/

ホーム・ディレクトリの内容を表示させてみる。
----------------------------------------------------------------------
% ls ~/ [←]
mbox   mbox~
% []
----------------------------------------------------------------------
mbox は、個人用のメールボックスである。この中に受け取って取り込んだメー ルが保存されている。mbox~ は、前回メールを操作した時(新着メールの取り 込むなど)のメール・ボックスである。こういうファイルを、バックアップ (backup)という。バックアップは、本物が壊れた時に代りに使う。1つ前の バックアップがあると、メールを操作する時に間違った場合に元にもどれるの で安心である。

◆ls -l ~/

ls -lでホーム・ディレクトリの内容を表示させてみる。
----------------------------------------------------------------------
% ls -l ~/  [←]
total 2
-rw-------  1 ta08          609 Jan  9 21:07 mbox
-rw-------  1 ta08          304 Jan  9 21:07 mbox~
% []
----------------------------------------------------------------------

◆ls -l ~/mbox

lsコマンドでは、引数としてディレクトリの名前ではなくファイルの名前を与 えることもできる。その時は、ディレクトリの内容ではなく、ファイルの名前 が表示される。
----------------------------------------------------------------------
% ls -l ~/mbox  [←]
-rw-------  1 ta08          609 Jan  9 21:07 /home1/ta08/mbox
% []
----------------------------------------------------------------------
lsコマンドには、引数として、ファイル名をいくつも与えることができる。こ の機能は、いくつかのファイルを比較する時に便利である。
----------------------------------------------------------------------
% ls -l  [←]
-rw-------  1 ta08          609 Jan  9 21:07 /home1/ta08/mbox
-rw-------  1 ta08            0 Jan  9 21:07 /var/mail/ta08
% []
----------------------------------------------------------------------
lsコマンドには、引数として、ディレクトリ名をいくつも与えることもできる。

◆ls -a ~/

ls コマンドは、普通、「.」から始まるファイル名を表示しない。しかし、-a (all) オプションを付けると、「.」から始まるファイル名も表示する。
----------------------------------------------------------------------
% ls  [←]
mbox   mbox~
% ls -a  [←]
.           .exrc       .less       .mailrc     .ng-vt100
..          .history    .login      .newsrc     mbox
.cshrc      .hushlogin  .logout     .newsrc~    mbox~
% []
----------------------------------------------------------------------

■lsによるファイル名の検索

ls コマンドを活用すると、簡単なファイル名の検索をすることができる。次 の例は、ディレクトリ /usr/bin の下にある a から始まるファイル名を検索 して表示させている。
----------------------------------------------------------------------
% ls /usr/bin/a*   [←]
/usr/bin/acctcom          /usr/bin/align_equals     /usr/bin/atoplot
/usr/bin/adb              /usr/bin/ar               /usr/bin/atq
/usr/bin/addbib           /usr/bin/arch             /usr/bin/atrm
/usr/bin/adjacentscreens  /usr/bin/as               /usr/bin/awk
/usr/bin/aedplot          /usr/bin/at
% []
----------------------------------------------------------------------
このように、「*」は、任意の文字と対応す。「*」は、いろいろ所に使うこと ができる。
a*
aから始まるファイル名
abc*
abcから始まるファイル名
*a
aで終わるファイル名
*a*
aを含むファイル名 *a*a* aを2文字含むファイル名
*a*a*a*
aを3文字含むファイル名
a*b
aで始まりbで終わるファイル名
* と似た ものに、? がある。? は、任意の1文字と対応す。また、[a-c]の ように打つ方法もある。これは、a,b,c のいずれかに対応す。[a-z]と打つと、 アルファベットの小文字、[A-Z]では、アルファベットの大文字、[0-9]では、 数字に対応す。

*, ?, [...]によるファイル名の検索機能は、普通、コマンドといっしょに使 われる。しかし、他のコマンドでも、同じような機能が働いている。たとえば、 lsコマンドの代わりに、echo コマンドを使うこともできる。echo コマンドは、 引数をそのまま画面に表示するコマンドである。

----------------------------------------------------------------------
% echo hello   [←]
hello
% []
----------------------------------------------------------------------
echo と *, ?, [...]を組み合わせることができる。
----------------------------------------------------------------------
% ls /usr/bin/a*b   [←]
/usr/bin/adb     /usr/bin/addbib
% echo /usr/bin/a*b [←]
/usr/bin/adb /usr/bin/addbib
% ls -l /usr/bin/a*b [←]
-r-xr-xr-x   1 bin        122116 May  3  1996 /usr/bin/adb
-r-xr-xr-x   1 bin          9076 May  3  1996 /usr/bin/addbib
% echo -l /usr/bin/a*b [←]
-l /usr/bin/adb /usr/bin/addbib
% []
----------------------------------------------------------------------

★練習問題

ディレクトリ /usr/bin/ には、いろいろな名前のプログラム(コマンド)が、 ファイルとして保存されている。ここにある、次のような名前のプログラムを 検索してみなさい。

■Mule のディレクトリ・エディタ

エディタ emacs (mule) には、ディレクトリ・エディタという機能がある。 これを使うと、ls -la と同じようにディレクトリの内容を画面 に表示してく れる。ディレクトリ・エディタは、次のようにして使う。
----------------------------------------------------------------------
% mule ディレクトリ名 [←]
----------------------------------------------------------------------
これを実行すると、ls -la ディレクトリ名と打った 時と同じような画面が表示される。
----------------------------------------------------------------------
  /home/home1/s976543:
  total 156
  drwxr-xr-x   4 s976543       512 Mar 24 23:25 .
  drwxr-xr-x  29 root         1024 Mar 22 16:35 ..
  -rw-r--r--   1 s976543       515 Mar 23 16:50 .cshrc
  -rw-r--r--   1 s976543       479 Mar 22 18:55 .cshrc~
  -rw-------   1 s976543      2308 Mar 23 19:24 .message
  -rw-------   1 s976543       130 Mar 23 18:57 .message~
  -rw-r--r--   1 s976543        11 Mar 22 16:46 .mh_profile
  -rw-r--r--   1 s976543        18 Mar 23 00:36 .mnews_setup
  -rw-r--r--   1 s976543     44210 Mar 23 21:39 .newsrc
  -rw-r--r--   1 s976543     44122 Mar 22 21:37 .newsrc.emg
  -rw-r--r--   1 s976543     44164 Mar 23 16:49 .newsrc~
  drwxr-xr-x   2 s976543       512 Mar 22 17:47 News
  -rw-------   1 s976543      5293 Mar 23 16:50 mbox
  -rw-------   1 s976543      5329 Mar 23 16:49 mbox~
  drwxr-xr-x   2 s976543       512 Mar 24 16:00 www





[--]J_:--%%-Dired: ~                      (Dired by name)--All------------------
----------------------------------------------------------------------
ディレクトリ・エディタ(mule)を終了するには、C-x C-c と打つ。 他のディ レクトリの内容を表示するには、カーソルを表示したいディレクトリ に合わ せて f と打つ。ディレクトリの場合、左のカラムが drwxr-xr-xのように、 「d」から始まっている。「-」 から始まっているものは、ファイルである。 ディレクトリでは なく、ファイルにカーソルを合わせて f と打つと、そのファ イルの 内容を編集することになる。

■Netscape

WWW ブラウザ Netscape でも、mule のディレクトリ・エディタと同じように、 ディレクトリの内容を表示する機能がある。この機能は、次のようにして使う。
----------------------------------------------------------------------
% netscape ディレクトリ名 &   [←]
----------------------------------------------------------------------
この機能は、パソコンで X-Window を動かしている時に使える方法である。つ まり、実習室の FMV から kterm を使ってログインした時に使える方法である。 Telnet を使っている時や、FMV の Netscape を使っている時には、この方法 は使えない。Netscape が実行されると、画面には、次のような画面が表示さ れる。
----------------------------------------------------------------------
Directory listing of /usr

Up to higher level directory
□5bin/            1 Kb    Wed Apr  7 21:22:38 1993 Directory
□5include/      512 bytes Tue Aug  4 20:16:51 1992 Directory
□5lib/          512 bytes Thu Mar 18 11:52:40 1993 Directory
□adm/             1 Kb    Tue Dec 24 21:00:03 1996 Directory
□bin/             5 Kb    Wed Apr  7 21:22:41 1993 Directory
□boot/          512 bytes Tue Aug  4 20:24:09 1992 Directory
----------------------------------------------------------------------

★練習問題

ls, mule のディレクトリ・エディタ、あるいは、netscape の機能を使っ て、 次のファイルやディレクトリがあることを確かめなさい。

★練習問題

ls, mule のディレクトリ・エディタ、あるいは、netscape の機能を使っ て、 自分のホーム・ディレクトリの内容を表示させなさい。このとき、ディレ ク トリ名としては、~ を指定するとよい。

★練習問題

ls, mule のディレクトリ・エディタ、あるいは、netscape の機能を使っ て、 その他のディレクトリやファイルを探してみなさい。

[UNIX入門のページにもどる]


[目次] [ログインとログアウト] [対話とシェル] [簡単なコマンド] [ファイルとディレクトリ] [木の探索] [操作] [chmod]
↑[手引きのページ] ・[UNIX入門] →[手引き追加情報(サーバ関連)] [手引き追加情報]
Last updated: 1997/10/20 00:40:56
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>