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 s03000hf student 512 4/20 15:46 Mail/ drwx------ 2 s03000hf student 512 4/ 8 18:01 WAppCNS/ drwx------ 2 s03000hf student 512 4/ 2 20:36 WAppNMC/ drwx------ 11 s03000hf student 512 4/ 8 18:01 WDataCNS/ drwx------ 6 s03000hf student 512 4/12 12:59 WDataNMC/ drwx------ 4 s03000hf student 512 4/12 12:08 Wnn/ drwxrwxrwx 3 s03000hf student 512 4/18 15:54 Wnn6/ drwx------ 2 s03000hf student 512 4/ 8 18:01 XPAppCNS/ drwx------ 15 s03000hf student 512 4/18 09:32 XPDataCNS/ -rw-r--r-- 1 s03000hf student 204 4/18 11:12 test -rw-r--r-- 1 s03000hf student 204 4/18 11:12 test2 drwxr-xr-x 2 s03000hf 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 と入力します.
● 練習問題
- 自分のホームディレクトリにあるファイルのうち最も新しいファイルを見つけましょう.ファイルを新しい順に表示するオプションは -t です.
- 次のことを試してみましょう.
- ls の引数に存在しないディレクトリ名を指定する.
- ls -l の引数にディレクトリでは無く,通常ファイルを指定する.
カレントディレクトリの移動
自分のいるディレクトリを移動したい(カレントディレクトリを変更したい)時には cd (---
change
directry)コマンドを使います.
移動したい先のディレクトリ名(カレントディレクトリにしたいディレクトリ名)を引数として指定します.
引数に指定するディレクトリは相対パスでも絶対パスでも構いません.例えばカレントディレクトリがホームディレクトリだったとして,この直下のMailというディレクトリに移動したい時は cd Mail と,相対パスを入力するか, cd
/home/(ログイン名)/Mail というふうに絶対パスを入力します.
% cd Mail % pwd /a/fs0501a/t03000tf/Mail |
% cd /home/t03000tf/Mail % pwd /a/fs0501a/t03000tf/Mail |
引数を指定せずに cd と入力しただけで Enter キー を押すとと,ホームディレクトリに移動します.
ファイルの内容を見る
emacs をわざわざ起動しなくても, less
コマンドでファイルの中身を見ることができます.
コマンドの引数に内容を見たいファイル名を指定するとそのファイルの内容を表示します.
ファイルの内容が一画面に収まらないときは,最初の一画面を表示して停止します.一画面ずつスクロールするには Space キー ,一行ずつスクロールするには Enter キー
を押します. b キー で一画面前に戻ることもできます.
終了するときは q キー を押します.
例えば,selfintroduction というファイルの内容を見たいときは
less selfintroduction と入力します.
% less selfintroduction 氏名:藤沢太郎 出身地:神奈川県藤沢市 出身高校:… |
less コマンドで中身を見ることができるのはテキストファイルだけです.
● 練習問題
宝探しゲームをしましょう.
まず,始めるために /pub/sfc/ipl/1a/exercise/islands
というディレクトリに移ってください.
% cd /pub/sfc/ipl/1a/exercise/islands |
- cd コマンドでサブディレクトリに移動し,ls コマンドでそこに何があるか調べます.
- 宝が無いと分かったら,親ディレクトリに移動して別のところを探します.相対パスを使って, cd .. と入力すれば一つ上のディレクトリに移動できます.
% cd .. |
- ファイルがあったら, less コマンドで中を見ます.
- 自分のいる場所がわからなくなったら 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 ) というコマンドを使います.
- ファイルを移動する場合は, mv の後に移動したいファイルの名前,移動先のパス(相対パス or 絶対パス)を空白で区切って入力します.
- ファイル名を変更する場合は, mv の後に変更したいファイルの名前,新しいファイル名を空白で区切って入力します.
% 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 % |