删除 X 天内未访问的目录

删除 X 天内未访问的目录

我编写了一些用于下载和缓存音乐的脚本,并且我喜欢删除缓存位置中 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

相关内容