3.4 ディレクトリ操作

ディレクトリを使ってファイルを管理するために,様々なコマンドがあります.

ディレクトリの内容を見る

・今自分がいるディレクトリにあるファイルの一覧を見るためには ls ( --- list )というコマンドを使います.

% ls
Mail            WDataNMC        Wnn6            test1
WAppNMC         Wnn             test

今,ホームディレクトリの中には先週作ったファイルと,いくつかの設定ファイル(最初にアカウントを作った時にできたもの)があります.

ファイル名の横に` ~ 'や` # 'がついたファイルが表示されることがあります.これらはemacsなどのソフトを使った際に自動的に作られたファイルです.

・.signature のように先頭が「.」で始まるファイルは,ソフトの設定に使うファイルなので,普通 は表示されません.それも表示させたい場合は, ls -a と入力します.ここでls のあとに1つ空白をあけてから` - 'をつけて加えたものをコマンドのオプション(option)と言います.オプションをつけることで,コマンドの機能を変化させることができます.

% ls -a
.                       .pgp                    WAppNMC
..                      .signature              WDataNMC
.Xauthority             .winman                 Wnn
.cshrc                  .xsession-errors        Wnn6
.login                  .yumiko                 test
.mh_profile             Mail                    test2
.netscape               News

・-l オプションを付けて ls -l と入力すると,先程 emacs でディレクトリの中身を表示した時と同じような,ファイルの詳しい情報が表示されます.

% ls -l
total 12
drwx------   5 t01000tf      512 Apr 18 17:59 Mail
drwx------   2 t01000tf      512 Apr  1 20:39 WAppNMC
drwx------   2 t01000tf      512 Apr  1 20:39 WDataNMC
drwxrwxr-x   2 t01000tf      512 Apr  1 20:39 Wnn
drwxrwxrwx   3 t01000tf      512 Apr 18 17:03 Wnn6
-rw-r--r--   1 t01000tf     1314 Apr 18 16:43 test
-rw-r--r--   1 t01000tf      658 Apr 18 16:32 test1

1行目の``total"は,そのディレクトリに存在するファイルの数を表わします.

カレントディレクトリ以外のディレクトリを見たいときは,そのディレクトリの名前を ls の後に書きます.
例えばMailというディレクトリの内容が見たいときは ls Mail と入力します.
この` Mail 'のようにコマンドの後に1つ空白をあけてから付け加えるものをこのコマンドの引数(argument)と言います.

% ls Mail
context   drafts    inbox

・コマンドのオプションはこれら以外にも,ファイルを新しい順に表示する -t オプションなどたくさんあります.
・コマンドに対して2つ以上のオプションをつけたい時はスペースで区切って並べます.例えば,全てのファイルの詳しい情報を知るには,-l オプションと -a オプションを同時に使って, ls -l -a と入力します.


● 練習問題

  1. 自分のホームディレクトリにあるファイルのうち最も新しいファイルを見つけましょう.ファイルを新しい順に表示するオプションは -t です.
  2. 次のことを試してみましょう.
    • ls の引数に存在しないディレクトリ名を指定する.
    • ls -l の引数にディレクトリでは無く,通常ファイルを指定する.

カレントディレクトリの移動

自分のいるディレクトリを移動したい(カレントディレクトリを変更したい)時には cd (--- change directry)コマンドを使います.
移動したい先のディレクトリ名(カレントディレクトリにしたいディレクトリ名)を引数として指定します.
引数に指定するディレクトリは相対パスでも絶対パスでも構いません.例えばカレントディレクトリがホームディレクトリだったとして,この直下のMailというディレクトリに移動したい時は cd Mail と,相対パスを入力するか, cd /home/(ログイン名)/Mail というふうに絶対パスを入力します.

% cd Mail
% pwd
/a/fs0501a/t01000tf/Mail
% cd /home/t01000tf/Mail
% pwd
/a/fs0501a/t01000tf/Mail
ディレクトリの移動

引数を指定せずに cd と入力しただけで Return キー を押すとと,ホームディレクトリに移動します.

ファイルの内容を見る

emacs をわざわざ起動しなくても, more コマンドでファイルの中身を見ることができます.
コマンドの引数に内容を見たいファイル名を指定するとそのファイルの内容を表示します.
ファイルの内容が一画面に収まらないときは,最初の一画面を表示して停止します.一画面ずつスクロールするには Space キー ,一行ずつスクロールするには Return キー を押します.
逆方向にもスクロールできる less コマンドもあります.
例えば,.signature というファイルの内容を見たいときは more .signature と入力します.

% more .signature
         __/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/__/
        __/__/__/    藤沢太郎 環境情報学部1年   __/__/__/
       __/__/__/ e-mail: t01000tf@sfc.keio.ac.jp  __/__/__/
      __/__/__/__/__/__/__/__/__/ __/__/__/__/__/__/__/__/

注意
more コマンドで中身を見ることができるのはテキストファイルだけです.

● 練習問題

宝探しゲームをしましょう.
まず,始めるために /pub/sfc/ipl/1a/exercise/islands というディレクトリに移ってください.

% cd /pub/sfc/ipl/1a/exercise/islands
  • cd コマンドでサブディレクトリに移動し,ls コマンドでそこに何があるか調べます.
  • 宝が無いと分かったら,親ディレクトリに移動して別のところを探します.相対パスを使って, cd .. と入力すれば一つ上のディレクトリに移動できます.
% cd ..
      
  • ファイルがあったら, more コマンドで中を見ます.
  • 自分のいる場所がわからなくなったら pwd コマンドで,カレントディレクトリを表示させます.