~/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 1
。rmdir
ファイルを削除すると、含まれているディレクトリのアクセスと変更の時間が変わるため、以前のディレクトリのファイルが削除されるとテストは無効になります。したがって、2回目の実行時に空のディレクトリを削除することが成功する可能性が高くなります。