【Linux】【Bash】ファイルを空にしたい

やりたいこと

プログラムのテストをしており、実行結果をログに出力している。

ログは追記で書き込まれるが、プログラムの実行結果が分かりにくくなってしまうため、ファイルを空に更新したい。

方法

truncateコマンドを使用する。

サンプルには以下を使用する。

% echo -e "0123456789\nabcdefghij" > truncate.txt
% cat truncate.txt
1234567890
abcdefghij

% ls -lha truncate.txt
-rw-rw-r-- 1 hoge hoge 22 Mar 22 10:57 truncate.txt

サイズを0に指定してtruncateを実行する。

% truncate --size 0 truncate.txt
% cat truncate.txt
//出力なし

% ls -lha truncate.txt
-rw-rw-r-- 1 hoge hoge 0 Mar 22 10:57 truncate.txt

ファイルサイズを0にすることができた。

size

変更後のファイルサイズを指定するオプション。

指定したサイズが対象ファイルより大きい場合、NULL文字(^@)で埋められる。

% cat -A truncate.txt
0123456789$
abcdefghij$
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

catの-Aオプションを使用すると、制御コードや改行コードを表示できる。

コメントを残す

メールアドレスが公開されることはありません。