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