Bashシェルスクリプトでファイルを空にする4つの方法

ファイルを予め用意しておきたいが、ファイルの中身は空にしたい。 そんなときに使える方法を4つ紹介します。

以下の方法のいずれもファイルの中身を空にできます。

ちなみに、ここで空にしたい対象ファイルは file.txt とします。

方法1 : echo コマンドを使う

echo コマンドを引数なし、末尾の改行無しオプション付きで実行します。

1
$ echo -n "" > file.txt

方法2 : cat コマンドを使う

/dev/null デバイスと組み合わせて、空文字を出力させます。

1
$ cat /dev/null > file.txt

方法3 : touch コマンドを使う

思い切って、一度削除してしまうという方法です。

1
2
3
$ rm -f file.txt

$ touch file.txt

**ただし、こちらの方法は問題があります。

tail -f コマンドのようなファイルを監視する仕組みを利用している場合に、新しく作成されたファイルの存在が検知できない場合があります。

方法4 : (おすすめ)リダイレクトのみ行う

もっともタイプ量が少ない方法です。

1
$ > file.txt

圧倒的な短さですね。

ひとこと

特に成約がなければ **4つめの方法で良いと思います。 **