created: 2021-03-10T06:38:49.000Z
つくられてから1時間以上経った未圧縮のファイルだけを削除する
こんなことをしたい場合
- 最終更新が60分前になっているファイル
- 名前が"*.zst"という形式ではないファイル (未圧縮)
- それらに対して
/usr/local/bin/zstd --rm
を実行する
/usr/bin/find /path/to/files \
-type f \
-mmin +60 \
! -name "*.zst" \
-exec /usr/local/bin/zstd --rm {} \; \
オプション
-type f
- ディレクトリでなくファイルだけを対象にする
-mmin +60
- 最後に内容が変わったのが60分以上過去のファイルを対象とする
! -name "*.zst"
- 名前が
*.zst
でないファイルを対象とする
- 名前が
-exec /usr/local/bin/zstd --rm {}
- それらのファイルに
zstd --rm
を実行する - 実行時には
{}
がファイル名に置き換わる
- それらのファイルに
cron
cronするなら /bin/bash -c
とすると手っ取り早い
*/10 * * * * appuser /bin/bash -c '\
/usr/bin/find /path/to/files \
-type f \
-mmin +60 \
! -name "*.zst" \
-exec /usr/local/bin/zstd --rm {} \; \
'