ファイルの操作方法 2

コマンドのオプション

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オプション

上の例でlsコマンドの-lオプションによって得られるファイルの情報が何を意味するか、以下に簡単に説明する。
今回はとりあえずファイルの大きさや、作成・変更された日時の部分だけわかれば良い。

-rw-r--r--
ファイルのモード
1
ファイルのリンク数
ad990100
ファイルの所有者
CGtec
ファイルのグループ
29
ファイルの大きさ(バイト単位)
Oct 11 15:33
ファイルが作成・変更された日時
tmp3
ファイル名

練習課題

ここでは、前回の復習も兼ねてファイルの操作を色々試してみる。
まず、そのための準備としてC言語のプログラムを作ろう。
最初にviでtest.cというプログラムを作る。

# vi test.c

test.cの内容は以下のように書き込んでおく。

main()
{
	printf("hello\n");
}

上のプログラムを書き込めたら(もちろん:wqviを終って)、以下のようにコンパイルして実行する。

# cc test.c
# a.out
hello 
# a.out > data1
# ls data1
data1 
# cat data1
hello 
#

以上で準備が終ったら以下の指示にしたがってコマンドを実行してゆくと最終的に、 どのようなファイル名のファイルがどのような内容で作られるかを確かめよう。

  1. 上で作ったファイルdata1をdata2という名前のファイルにコピーせよ。
  2. ファイルdata2を、さらにコピーしてdata3という名前のファイルを作れ。
  3. ファイルdata1をdata4という名前に変更せよ。
  4. 上のプログラムtest.cをviで書き換えて、コンパイルし以下のように出力するようにせよ。 (helloを大文字のHELLOに書き換える)
    # a.out
    HELLO
    #
    
  5. 次に、もう一度a.outの出力でファイルdata1を作る。
  6. 最期にファイルdata2を消して、data1をdata2という名前に変更する。

以上の手順により以下のようになれば良い。

# 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 
#

参考


Prev | Next
Home | Contents
abe@injapan.net