findとanacronを使用したクリーンアップスクリプト

findとanacronを使用したクリーンアップスクリプト

~/Downloadsから古いファイルを自動的に削除したいです。名前に「!」が含まれている場合は除外されます。私の現在のバージョンは次のとおりです。

find /home/user/Downloads/ -mtime +90 ! -path '*!*' -delete

次のようにテストするとき*:

find /home/user/Downloads/ -depth -mtime +90 ! -path '*!*' -print

結果:

/home/user/Downloads/old.file
/home/user/Downloads

/home/user/Downloadsまだ含まれている私のディレクトリを削除したくありません。!protected.old.file

私はアナクロンで実行したいので、globbingを使用するのが良いアイデアかどうかはわかりません。

*注、これは-depth暗黙的です-delete

答え1

特定のパスをfind削除から保護するにはを使用します-mindepth 1rmdirファイルを削除すると、含まれているディレクトリのアクセスと変更の時間が変わるため、以前のディレクトリのファイルが削除されるとテストは無効になります。したがって、2回目の実行時に空のディレクトリを削除することが成功する可能性が高くなります。

関連情報