ファイルの削除
以下のように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日経過しているディレクトリを削除できます。