Linuxで任意のディレクトリを期間指定して削除する

linuxでdiskfullになってアヘー((+_+))ってなる前に、一定期間以前のファイルを削除するようにコマンドを作ろうと考えた。

ファイルを見つけるのはfind

findコマンドを使えばほぼ完了するっぽいので、さっそく着手。
とりあえず/home/hoge/work/配下の拡張子txtのファイルを見つけるのは

find /home/hoge/work/ -name \*.txt

なので、これを応用して

  • /home/hoge/work/ 配下のファイル
  • txtとlogのファイル
  • 1年以上前のファイル

を削除する場合は

find /home/hoge/work/ \( -name \*.txt -or -name \*.log \) -mtime +365 -delete

となる。

-name-or複数の拡張子が指定可能
-mtimeどのぐらい前のファイルを削除対象とするのか、日数を入力
-deleteで見つけたやつ消すぜ

という意味。

最後に動かす方法を決めれば終了

あとはこれをどこで動かすかを決めるだけ。もちろんchmodで実行権は付与するんやで。

りょーへー
りょーへー

自動の場合はcronにいれるとええな。

LInux IT
りょーへーをフォローする

りょーへーぶろぐ