UNIXの操作/UNIXでのファイル・ディレクトリ操作/コマンドの一覧と前提知識
ここではファイル・ディレクトリ操作に必要な知識を説明します.ワイルドカードによる指定やパイプ・リダイレクションの使い方はコマンドを理解していないと難しい部分ですので,まずファイル・ディレクトリの指定まで読んだあと,次にあげる表の通りに読み進めてから戻っても構いません.
3.1.1 引数でのファイル・ディレクトリの指定コマンドの引数としてファイル・ディレクトリを指定する場合は絶対パス,相対パスのどちらでもかまいません.パスを省略した場合や,`./ ファイル・ディレクトリ名'とした場合にはカレントディレクトリのファイルやディレクトリを表します. `../' は1つ上のディレクトリを表します. 3.1.2 ファイル・ディレクトリの表示あるディレクトリに,どのようなファイル・ディレクトリがあるかを知るためには,lsコマンドを使用します.ファイル・ディレクトリの情報は他のさまざまなコマンドを利用する際に必要となります. lsコマンドの詳しい使い方は,3.2を参照してください. 次にlsコマンドのもっとも簡単な使い方を示します.
%ls <RET>
Mail Wnn report.tex lsコマンドを実行すると,現在位置するディレクトリ(カレントディレクトリ)にあるファイル・ディレクトリ名が一覧表示されます.
3.1.3 ワイルドカード
例えば,ファイル名に`.log'が含まれているファイルをすべて消去するような場合,ワイルドカードによる置換機能を使うと効率的に行えます. ``ワイルドカード''とは任意の文字列や任意の1文字を指定するための特殊な文字のことです.シェルにはワイルドカードを展開して,入力されたファイル名を置換する機能があります.ワイルドカードを利用することによって,複数のファイルを効率的に操作できます. 0文字以上の任意の文字列を表すワイルドカード *
アスタリスク`
%ls -a <RET>
./ ../ .mathmatics economics.tex micro.c .statistics macro.tex micro.tex%ls *.tex <RET> economics.tex macro.tex micro.tex %ls m* <RET> macro.tex micro.c micro.tex %rm * <RET> ←rmコマンドでファイルを削除する %ls -a <RET> ./ ../ .mathmatics .statistics % _
任意の1文字を表すワイルドカード ?
クエスチョンマーク(`
%ls <RET> economics.tex macro.tex micro.c micro.tex mcro.tex %ls m?cro.tex <RET> macro.tex micro.tex % _
ワイルドカードを用いたファイル名をつけるとそのファイルの操作が困難になるので,ファイル名にはワイルドカードを用いないようにしてください.
ワイルドカードは,多くのファイルを同時に操作する際に便利ですが,一方では操作を間違えてしまった場合の影響も大きいので注意する必要があります.特にファイルを消去するような場合にはコマンドを実行する前によく確認してください.
3.1.4 入出力のリダイレクションとパイプ通常,コマンドはキーボード(標準入力)から入力され,結果は画面(標準出力)に出力されます.しかし,コマンドの実行結果を用いて次の処理をするときに,実行結果をファイルや次のコマンドに出力できれば効率的に作業を行えます.シェルは``リダイレクション''と``パイプ''と呼ばれるコマンドの入力や出力を切り替える機能をもっています. リダイレクション
リダイレクションは,ファイルの内容を標準入力として使用したり,標準出力の内容をファイルに書き込むための機能です.リダイレクションを使うことによって,ファイルの内容をコマンドに入力したり,コマンドの実行結果をファイルに書き込めます.リダイレクションには,`
パイプパイプは,ある1つのコマンドの標準出力を次のコマンドの標準入力として使用する際に用います. 次の例では,`ls -l'の標準出力を次のlessコマンドの標準入力として用いています.こうすることで,lsコマンドの出力が1画面以上の長さにわたる場合でも,1画面ごとに止めて見られます.
%ls -l | less<RET>
パイプは2つ以上のコマンドをつなぎ合わせられます.なお,パイプの後に`
% [コマンド1] | [コマンド2]<RET>
コマンドの入力と出力先に同じファイル名を指定してはいけません.同じファイル名を指定するとファイルの内容が失われてしまいます.出力リダイレクトによる
新規ファイルの作成を防止するときには,あらかじめシェルで`set noclobber'と入力しておきます.
|