如何限制我的~/.cache文件夹的大小?

我在一台容量有限的SSD上运行Ubuntu,所以每个GB都很重要。现在,~/.cache文件夹已经增长到1.7GB(各种应用程序如Chrome、Spotify等填满了它),我想知道是否有办法限制这个缓存的大小?
我看到一些解决方案建议添加一个cronjob来使用一些awk技巧删除旧文件,但我不知道如果随机文件被删除,所有这些应用程序会如何处理(或者这样做可以吗?)。而且,这个解决方案并不递归搜索文件夹。

你的使用情况如何?是24/7全天候使用,每天清洁多少次或者其他什么情况? - Oli
如果我理解正确- 我大部分时间会让我的机器进入睡眠状态,只有在知道我暂时不会使用它(或者进行了升级)时才会进行完全关机。 - metakermit
1个回答

如果你要使用那个问题的任何技术,我会选择在cron作业中使用查找技术,并修改它来检查大小。
@daily    find /home/username/.cache/ -atime +7 -size 50M -delete

显然可以试试看。您可能希望将某些路径从查询中排除,因为.cache中包含很多需要重新生成的东西(例如某些媒体播放器或照片查看器的缩略图),这可能会给您带来麻烦。

当然,另一个选择是通过在/etc/fstab中添加类似以下内容来将所有内容移动到tmpfs中:

tmpfs        /home/username/.cache/    tmpfs   defaults,noatime,mode=1777   0  0

这将把所有内容存储在RAM中(在sudo mount -a或重启后)。显然,这意味着一旦关机,其中的所有内容都会丢失。这可能只适用于很少重新启动且具有大量RAM的桌面电脑。
这两者可以结合使用。
另一个选择是将缓存移到速度较慢、价格更便宜的媒体上。如果你的电脑有足够大的磁盘空间,通常可以通过符号链接或绑定挂载的方式将数据分散到多个磁盘上,这样做往往快速且简单。
或者,将其他不依赖速度的东西(如文档、音乐等)移动到慢速磁盘上,为SSD上的缓存提供更多空间。

谢谢你的帮助,Oli。是的,我明白你的意思——这是在响应更快的操作系统和节省磁盘空间之间做出的权衡。我会考虑你提出的方法,并看看哪个最适合我——可能是最后一个,因为这是一台笔记本电脑,我想尽量减少重新计算的内容以节省电池。 - metakermit