いろいろ備忘録日記

主に .NET とか Go とか Python絡みのメモを公開しています。

ファイルの中身を空にするコマンドあれこれ

概要

よく忘れるコマンドのメモ。

テストしているときとかに、よくファイルを空にする必要があったりします。

ファイルを空にする際のコマンドっていくつかあるので、メモしとこうと思います。たまに忘れるので。

touch コマンド

ファイルが存在しない場合、限定ですが

$ ls -l
合計 0
$ touch a.txt
$ ls
a.txt
$ wc --bytes < a.txt
0

で空のファイルが作れます。もともとtouchはファイルのタイムスタンプを変更するコマンドなので

存在するファイルに touch すると、タイムスタンプが更新されるだけなのに注意。

/dev/null を コピー

cp コマンドで、/dev/null を コピーすることで空になります。

$ ls
a.txt
$ echo 'helloworld' >> a.txt
$ wc --bytes < a.txt
11
$ cp /dev/null a.txt
$ wc --bytes < a.txt
0

シェルの組み込みコマンド : をリダイレクト

sh には、組み込みコマンドで : というコマンドがあります。シェルスクリプトでよく使うやつですね。

: コマンドは、何もせずに終了コード 0 を返すだけのコマンドです。

こいつをリダイレクトすることで、空に出来ます。

$ echo 'helloworld' >> a.txt
$ wc --bytes < a.txt
11
$ : > a.txt
$ wc --bytes < a.txt
0

: のリダイレクトの省略版

上で、シェルの組み込みコマンド : を使ったリダイレクトを記載しましたが

実は、: を省略することもできます。これが一番シンプルですね。短いし。

$ echo 'helloworld' >> a.txt
$ wc --bytes < a.txt
11
$ > a.txt
$ wc --bytes < a.txt
0

過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com