深い階層のログのサイズを0にする

またまた業務でとあるコマンド列を生成したので忘備

 

◆要件

特定フォルダ/tmpの配下に複数のフォルダがあり、各フォルダにはバラバラの命名規則でならんだログがある

定期的にログの中身をゼロにして、初期化したい

ただし、ファイルの名前を変更するとエラーとなるので、純粋にファイルの容量を減らしたい

 

◆コマンド

find /tmp/* -type f | xargs -I {} truncate {} -s 0

 

findでファイルの中身をすべて取り出し、それぞれに対してtruncateコマンドを実行

truncateコマンドはファイルサイズを可変させることができる

-s 0とすることで、ファイルサイズを強制的に0に変更できる

 

はじめてxargsの使い方をまともに調べた気がします・・・

 

以上