[Linux] 最終更新日や最終アクセス日を指定して、ファイルを検索/削除する
こんにちは、@yoheiMuneです。
サーバーでシステムを運用していたらだんだんとファイルが増えてハードディスクがいっぱいに・・・。そんな時に古いファイルを見つけて削除する方法をブログに書きたいと思います。
そして、オプションの後ろには、「+n:n日以前」「n:ちょうどn日前」「-n:n日前まで」を指定することができます。
最後になりますが本ブログでは、Linux・フロントエンド・インフラ・Go言語・Node.js・Python・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
サーバーでシステムを運用していたらだんだんとファイルが増えてハードディスクがいっぱいに・・・。そんな時に古いファイルを見つけて削除する方法をブログに書きたいと思います。
目次
findコマンドで日付ベースでファイルを見つける
findコマンドのmtime
やatime
のオプションを指定して、日付でファイルを探すことができます。オプション | 概要 |
---|---|
-mtime | ファイルの最終更新日を指定して検索する |
-atime | ファイルの最終アクセス日を指定して検索する |
# 最終更新日が「10日前〜過去」であるファイル $ find /opt/myapp/data/ -mtime +10 # 最終更新日が「10日前」であるファイル $ find /opt/myapp/data/ -mtime 10 # 最終更新日が「現在〜10日前」であるファイル $ find /opt/myapp/data/ -mtime -10最終更新日や最終アクセス日で検索できるのは便利ですね〜。他にもfindコマンドにはいっぱいオプションがありますので、気になった方は
man find
などで確認してみてください。最終更新日が60日前以前のファイルを削除
上記の検索を応用すると、○日前より古いファイルを一括で削除する、といったシェルも簡単に書くことができます。# 該当ファイルが問題ないことを確認して... $ find /opt/myapp/data/ -mtime +60 # その後に、rmで一発削除 $ find /opt/myapp/data/ -mtime +60 | xargs rmと、こんな感じです。同じことをfindの
-exec
でもできますが、1件ずつ削除すると遅いので、xargsの方がいいですね。最後に
Linuxコマンドは日々勉強中です。色々とあって学びがいがありますね。今後もたくさんブログに書きたいと思います。最後になりますが本ブログでは、Linux・フロントエンド・インフラ・Go言語・Node.js・Python・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!