2月
25
2012

シェルで空ファイルを作る方法


ひさしぶりにやると楽しいシェルでのお話です。

空ファイルを作るときのコマンドといえば

$ touch file
$ ls -l
合計 0
-rw-r--r--    1 user     project         0 Apr 14 05:26 file

をなんの疑いもなく使ってたのですが、
fileが存在した場合はこのコマンドだと更新時間が変わるだけで
中身はそのままなのです。

$ ls -l
合計 0
-rw-r--r--    1 user     project       100 Apr 14 06:36 file
$
$ touch file
$ ls -l
合計 0
-rw-r--r--    1 user     project       100 Apr 14 06:50 file

空ファイルを作ったつもりがぜんぜん空じゃない。
というわけでこっちのコマンドを使って空ファイルを作ることにしました。

$ cp /dev/null file

これは上書きもかねるのでfileが存在する場合も空ファイルとなります。

$ ls -l
合計 0
-rw-r--r--    1 user     project       100 Apr 14 07:15 file
$
$ cp /dev/null file
$ ls -l
合計 0
-rw-r--r--    1 user     project         0 Apr 14 07:30 file

今回の場合は、データありのファイルを空ファイルにする必要があったので
このコマンドを使ってるけど
フラグファイルみたいな空ファイルとしてしか運用されないようファイルの場合は
touchコマンドで大丈夫です。

Trackback URL


Leave a comment

This blog is kept spam free by WP-SpamFree.

UA-19837173-1