0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ファイルの中身を空にする方法

Posted at

ファイルの中身を空にしたい事ありますよね。
例えばログが大量に蓄積されていた時や、デバッグのためにリセットしたりなど。
しかしそんな頻繁に起きるわけでもなく、いざ使うとなっても「なんだっけ?」となり調べていたのでよく使うコマンドの備忘録です。

対象

Linux環境 (Mac/WSL/サーバー環境などを想定)
※Windowsユーザーさんはパワーシェルやコマンドプロンプトは対象外ですので注意してください。

結論、truncate -s 0 パスを使う

truncate -s 0 ファイルパス

これは既存のファイルの中身を削除して容量を0にする。
注意点としては、ファイルが存在しない場合にはエラーになります。
特段理由がなければこれで問題なくクリアできるのでおすすめです。
-sオプションがサイズを指定していて、0でファイルサイズを0バイトに指定しています。

その他の方法

正直調べても色々出てくるので、どれが正解とは言えません。上のtruncateを使う事で空にするという目的はきちんと果たせているので困ってはないが他にもやり方は色々あるようです。状況に応じて使い分けられると良いかもしれません。

echo "" > パス

これもファイルの中身を空にはしてくれるが、truncateとは違い特徴がある。
仕組みとしては、初めに空文字列を出力して、> (リダイレクト演算子)を使って右側のパスで指定したファイルに出力するというものみたいです。
注意点としては、 ファイルが存在しない場合にはファイルを作成する という事です。
なのでファイルの作成権限がない場合にはエラーがになるかもしれません。

余談1:WordPressのログ

以前WordPressの移管作業時にデータが20GBくらいあるサイトに遭遇。
サイト自体も大きい方ではあったので、バックアップデータとか画像なのか?と調べてみることに。
確かに案の定バックアップデータは大きく10GBくらいは削減できました。
それでも10GB、画像がそこまで多くないので調べてみるとログデータが肥大化していました。
たかがログだと侮っていましたが、それでも6GBもありました。
デバッグした後には余計なデバッグログを出力しないように無効化しましょう。

余談2: Laravelのログ

Laravelではstorage/logs/laravel.logがあると思います。
これはLaravel側で必要時には自動で生成されるらしく、rmで消しちゃっても問題ないらしいです。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?