LoginSignup
5
3

More than 1 year has passed since last update.

【Linux】一定期間経過したディレクトリやファイルを削除する方法

Last updated at Posted at 2022-09-26

ファイルの削除

以下のようにfindコマンドを使用して一定の期間が経過したファイルを削除します。

find /path/to/dir -name '*.log' -mtime +30 -delete

上記を実行すると対象ディレクトリの.logファイルのうち最終変更日から30日経過しているファイルを削除します。

-mtimeの部分を変更することで期間の起算日を変更できます。
使用可能なオプションは以下のとおりです。

オプション 説明
-mmin 最終変更日時から(分)
-mtime 最終変更日時から(日)
-amin 最終アクセス日時から(分)
-atime 最終アクセス日時から(日)
-cmin データとステータスの最終変更日時から(分)
-ctime データとステータスの最終変更日時から(日)

また数字の前の+の部分には-を指定したり指定しないことができます。

オプション 説明
+ 過去から指定した数字までに
- 現在から指定した数字までに
指定なし 指定した数字前に
  • 30日前までに変更された
-mtime +30
  • 現在から30分前までに変更された
-mmin -30
  • 30日前にアクセスされた
-atime 30

ディレクトリの削除

上記の方法では空ではないディレクトリを削除することができません。
中身のあるディレクトリを削除するには以下のように実行します。

find /path/to/dir -type d -mtime +30 | xargs rm -fr

上記を実行すると最終変更日から30日経過しているディレクトリを削除できます。

5
3
0

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
5
3