ファイルを空にしたい
フォルダやファイルの構造をそのままに、ファイルの中身を空っぽにしたい。
ファイルを消してtouch すれば良いんだろうけど、パーミッション設定しなおしたり面倒くさいよね。ファイルのinodeも変わってしまうので tail してたら tail し直しだ。ファイルをreadしてる常駐プロセスがあれば、そのでエラーになっちゃうし。
ファイルを空にする truncate
truncate -s0 path/to/file
これで、ファイルの中身を消せる。
truncate した場合の tail
tail してる場合は truncated と通知されるんですよ。
takuya@src$ tail -f src/index.html aa aa tail: src/index.html: file truncated
ファイルを空にするリダイレクト
:> /path/to/file
コマンドの :
true と リダイレクト >
を組合せて、ファイルをTruncateして空っぽにすることも出来る
echo で空文字 でもいい。
echo -n > /path/to/file
ddでマニアックに
もう一つの方法は dd でやるほうほう。これもマニアック。だけどちゃんとtruncateする。
要は ファイルをopen して先頭にカーソルを持ってきて何か書いてflush すれば良いわけです。
dd if=/dev/zero of=index.html bs=1 count=1
2018-02-26
追記修正