UNIXのコマンドには通常(デフォールト)とは少し違う処理・表示をさせたいときに使用するオプションがついていることが多い。
例えば、lsコマンドでは-lというオプションをつけることによってファイルの詳しい情報を得ることができる。
また、cp, mvコマンドなどでも-iと言うオプションをつけることによって、すでにあるファイルにコピー、ファイル名変更などをする場合に古いからあるファイルの内容を消して良いか確認するようにできる。
# ls aaa ls: aaa: No such file or directory # ls tmp3 tmp3 # ls -l tmp3 -rw-r--r-- 1 ad990100 CGtec 29 Oct 11 15:33 tmp3 # cp tmp3 tmp4 # ls tmp3 tmp4 tmp3 tmp4 # cp -i tmp3 tmp4 cp: overwrite `tmp4'? n # mv -i tmp3 tmp4 mv: replace `tmp4'? y # ls tmp3 tmp4 ls: tmp3: No such file or directory tmp4 #
上のようにlsの後ろにファイル名を打ち込むと、 そのファイルが存在するかどうか確かめられる。 (ファイルが無ければ ls: aaa: No such file or directory などと表示される)
上の例でlsコマンドの-lオプションによって得られるファイルの情報が何を意味するか、以下に簡単に説明する。
今回はとりあえずファイルの大きさや、作成・変更された日時の部分だけわかれば良い。
ここでは、前回の復習も兼ねてファイルの操作を色々試してみる。
まず、そのための準備としてC言語のプログラムを作ろう。
最初にviでtest.cというプログラムを作る。
# vi test.c
test.cの内容は以下のように書き込んでおく。
main()
{
printf("hello\n");
}
上のプログラムを書き込めたら(もちろん:wqでviを終って)、以下のようにコンパイルして実行する。
# cc test.c # a.out hello # a.out > data1 # ls data1 data1 # cat data1 hello #
以上で準備が終ったら以下の指示にしたがってコマンドを実行してゆくと最終的に、 どのようなファイル名のファイルがどのような内容で作られるかを確かめよう。
# a.out HELLO #
以上の手順により以下のようになれば良い。
# ls data1 ls: data1: No such file or directory # ls data2 data3 data4 data2 data3 data4 # cat data2 HELLO # cat data3 hello # cat data4 hello #