3.4 ファイルの操作

ディレクトリとツリー構造,ファイルパスの概念を使って,実際にディレクトリやファイルの中身を確認したり,操作したりする為のコマンドを学びましょう.

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

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

% ls
Mail            WDataNMC        Wnn6            test1
WAppNMC         Wnn             test
	

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

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

・.emacs のように先頭が「.」で始まるファイルは,ソフトの設定に使うファイルなので,普通 は表示されません.それも表示させたい場合は, 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 1304
drwx------   9 s02000hf  student     512   4/20 15:46 Mail/
drwx------   2 s02000hf  student     512   4/ 8 18:01 WAppCNS/
drwx------   2 s02000hf  student     512   4/ 2 20:36 WAppNMC/
drwx------  11 s02000hf  student     512   4/ 8 18:01 WDataCNS/
drwx------   6 s02000hf  student     512   4/12 12:59 WDataNMC/
drwx------   4 s02000hf  student     512   4/12 12:08 Wnn/
drwxrwxrwx   3 s02000hf  student     512   4/18 15:54 Wnn6/
drwx------   2 s02000hf  student     512   4/ 8 18:01 XPAppCNS/
drwx------  15 s02000hf  student     512   4/18 09:32 XPDataCNS/
-rw-r--r--   1 s02000hf  student     204   4/18 11:12 test
-rw-r--r--   1 s02000hf  student     204   4/18 11:12 test2
drwxr-xr-x   2 s02000hf  student     512   4/11 11:18 tmp/
	

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/t02000tf/Mail
	
% cd /home/t02000tf/Mail
% pwd
/a/fs0501a/t02000tf/Mail
	
ディレクトリの移動

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

ファイルの内容を見る

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

% more selfintoroduction
氏名:藤沢太郎
出身地:神奈川県藤沢市
出身高校:…
	
注意
more コマンドで中身を見ることができるのはテキストファイルだけです.

● 練習問題

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

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

端末ウィンドウからファイルを操作するために様々なコマンドがあります.

新しいディレクトリを作る

・新しいディレクトリを作るためには mkdir ( --- make directory )というコマンドを使います.

% ls
test
% mkdir testdir
% ls
test    testdir
% ls -a testdir
.       ..
%

ファイルのコピーを作る

・ファイルのコピーを作るためには cp ( --- copy ) というコマンドを使います.

cp の後にコピー元のファイルと,新しく作るファイルの名前を空白で区切って書きます.
新しく作るファイルの代わりにディレクトリ名を指定すると,そのディレクトリの中に同じ名前で新しいファイルが作られます.

% ls
test    testdir
% cp test temp
% ls
temp    test    testdir
% cp test testdir
% ls testdir
test
%

● 練習問題

隣の人のホームディレクトリ下にあるファイルを自分のホームディレクトリにコピーしましょう.

ファイルの移動・ファイル名の変更

ファイルの移動や、ファイル名の変更には mv ( --- move ) というコマンドを使います.

% ls
temp    test    testdir
% mv temp testdir
% cd testdir
% ls
test    temp
% mv temp temp2
% ls
test    temp2
%

注意
ファイル名の変更の際,変更先のファイル名が既に存在するものであった場合,そのファイルに上書きされ元の内容は消えてしまうので注意.
例えば上の例の場合,temp2 というファイルをtest という名前に変更する場合,元のtest というファイルの内容は消えてしまい,temp2 の内容が上書きされてしまいます.

ファイルの削除

ファイルの削除を行うには, rm ( --- remove ) というコマンドを使います.
rm に続いて削除したいファイル名を引数として指定します.空白で区切って複数のファイル名を指定することもできます.

% ls
temp2   test
% rm temp2
% ls
test
%
注意
一度消したファイルを復元することはできません.

ディレクトリの削除

ディレクトリの削除を行うには, rmdir ( --- remove directory ) というコマンドを使います.

削除したいディレクトリ名を引数として指定します.空白で区切って複数のディレクトリ名を指定することもできます.
ただし,ディレクトリの下にファイルがある場合には,そのディレクトリは削除できません.そのような場合,ディレクトリの下にあるファイルを全て削除するか移動するかした後,ディレクトリを削除することになります .

% ls
test     testdir
% rmdir testdir
% ls
test
%