ファイル名を含むファイルログを削除する方法

ファイル名を含むファイルログを削除する方法

この名前の形式のログファイルがあるとします。

NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30
NameLog.log.2014-10-01
NameLog.log.2014-10-02
NameLog.log.2014-10-03
NameLog.log.2014-10-04

ログファイルを削除したい

NameLog.log.2014-09-27
NameLog.log.2014-09-28
NameLog.log.2014-09-29
NameLog.log.2014-09-30

実際には、ファイルログに30個のファイルだけを保持したいと思います。スクリプトでbashこの問題をどのように解決できますか?

ベストアンサー1

必要な操作を実行する最も簡単な方法は、ディレクトリから30日以上経過したすべてのファイルを削除することです。次のコマンドを使用できますfind

find /path/to/log/ -maxdepth 1 -name "NameLog.log*" -mtime +30 -delete

説明する:(望むより:シェルの解釈)

  • -maxdepth 1:フォルダ構造を掘り下げないでください
  • -name "NameLog.log*":この名前のログファイルにのみ適用されます。
  • -mtime +30:修正時間が30日を超えました。
  • -delete:削除してください

おすすめ記事