私は音楽をダウンロードしてキャッシュするためのいくつかのスクリプトを書いており、X日間アクセスされなかったキャッシュの場所のディレクトリを削除したいと思います。次の方法でこれを行うことができます。
gfind "$music_dir" -mindepth 1 -type d -atime +90 -print -delete
ただし、これにより、残りのすべてのディレクトリのアクセス時間がすぐに現在に設定されるため、これは非常に望ましくありません。どうですか?
PS:私はmacOSを使用していますが、クロスプラットフォーム(Unixy)ソリューションを好みます。
答え1
以下を使用してchflags
(またはオペレーティングシステムに応じて)chattr
ディレクトリを変更できないようにします。
sudo chflags -R uimmutable "$music_dir"
gfind "$music_dir" -mindepth 1 -type d -atime +90 -print > 'delete_list.txt'
sudo chflags -R nouimmutable "$music_dir"
cat 'delete_list.txt' | xargs rm -rf