![如何限制 ~/.cache 文件夹的大小](https://linux22.com/image/842711/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%20~%2F.cache%20%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E5%A4%A7%E5%B0%8F.png)
我在容量有限的 SSD 上运行 Ubuntu,因此我会计算每 GB 的大小。现在,~/.cache 文件夹已增长到 1.7 GB(Chrome、Spotify 等各种应用程序已将其填满),现在我想知道是否有办法限制此缓存的大小?
我看见一些解决方案建议添加一个 cronjob 来使用一些 awk 技巧删除旧文件,但我不知道如果只是删除随机文件(或者这样可以吗?),所有这些应用程序会如何处理。此外,此解决方案不会递归搜索文件夹。
答案1
如果你要使用任何技术那个问题,我会选择 cron 作业中的 find 技术并对其进行修改以检查大小:
@daily find /home/username/.cache/ -atime +7 -size 50M -delete
显然,可以尝试一下。您可能希望从查询中排除某些路径,因为其中.cache
包含很多可能很难重新生成的内容(例如某些媒体播放器或照片查看器的缩略图)。
当然,另一种选择是tmpfs
通过添加以下内容将所有内容转移到/etc/fstab
:
tmpfs /home/username/.cache/ tmpfs defaults,noatime,mode=1777 0 0
这会将所有内容存储在 RAM 中(在sudo mount -a
重新启动后)。显然,这意味着一旦关闭电源,您就会丢失其中的所有内容。这可能只适合很少重新启动且具有大量 RAM 的台式机。
两者可以结合使用。
另一种选择是将缓存移至速度较慢、价格较低的介质。如果您的计算机中有足够空间容纳大型磁盘,那么这通常是一种快速简便的方法(使用符号链接或绑定安装)将缓存分散到多个磁盘上。
要么这样做,要么将其他不依赖速度的内容(例如文档,音乐等)移动到较慢的磁盘,从而为 SSD 上的缓存提供更多空间。