可以删除~/.cache文件夹吗?

当我使用磁盘使用分析器扫描我的主文件夹时,我的主目录中的.cache文件夹总是显示出相当多的内容。
我可以删除这个文件夹的内容吗?会不会对系统造成损害?

11My .cache was 11G - cmcginty
2可能是跨站点重复:http://superuser.com/questions/366771/what-does-cache-do-it-consumes-a-huge-disk-space - Ciro Santilli OurBigBook.com
Bleachbit 是一款带有一些“食谱”的应用程序,用于清理东西,并且它能够提前展示将要被移除的内容。 - 0xC0000022L
6个回答

回答这个问题,我认为你可以删除所有的.cache文件夹,而不会对长期产生不利影响。
如果你的.cache文件夹变得很大,最好查看其中的内容,并确定是哪个应用程序导致了它的增大,然后重新配置该应用程序(而不仅仅在.cache文件夹变得太大时删除它)。
另一个可能占用大量空间(或保存一些尴尬证据)的目录是.thumbs目录。.thumbs目录中的许多文件似乎是重复的。
要进行清理(只需小心使用-rf标志和其他目录 ;)
rm -rf ~/.thumbs/*

当你刚接触Ubuntu/Linux时,很难知道在你的主目录中可以删除什么和不能删除什么。大部分情况下,你可以删除主目录中的大部分内容,需要.cache(或其他点文件,如.local)的程序或应用会重新创建它们。
大多数情况下,最坏的情况是你会丢失自定义配置,但对系统没有真正的伤害。
我不建议你养成删除主目录中你不理解的东西的习惯,最好备份或使用测试账户。如果有疑问,安全起见,最好备份或移动文件。
mv .cache .cache_backup

如果需要的话,您可以从备份中恢复数据。
绝对不要开始删除您在个人目录之外不理解的文件或目录。

6我对任何以rm -rf开头的命令都感到非常紧张,所以我建议使用gvfs-trash ~/.thumbs代替。 - wjandrea
1@wjandrea 简单地使用 rm -r 就可以了 ;) ... -f 只在特殊情况下或者如果 rm 被别名为 rm -i 时才需要使用 ... - 0xC0000022L
@0xC0000022L 说得好,但是我会担心在 rm -r ~ 后不小心按下回车键。 - wjandrea
@wjandrea "此工具已被弃用,请使用'gio trash'代替。" - Henrique de Sousa
3我在我的 Kubuntu 系统中也有 trash-cli 工具,可以通过使用 sudo apt install trash-cli 命令轻松安装。对于那些对 rm -rf 命令心存顾虑的人来说,这是一个很好的替代选择。 - Spam Hater
似乎在某个时候 ~/.thumbs/ 变成了 ~/.thumbnails/ - Pablo Bianchi

我刚刚发现我的备份磁盘里堆满了.cache文件夹的东西(我猜应用程序会清理自己的缓存,但我不删除备份,所以它变得很大)。所以我将.cache从备份列表中排除,但我注意到.cache里有十年前的东西,那些软件我都忘记曾经使用过!
这将删除你的.cache文件夹中一年前访问过的所有内容。
find ~/.cache/ -type f -atime +365 -delete

如果你对运行它感到紧张,这将向你展示将要被删除的内容:
find ~/.cache/ -depth -type f -atime +365 

我正在使用“访问时间”来做这件事,你也可以尝试使用-ctime来表示“创建时间”(尽管我发现很多缓存文件已经存在多年,但仍然被访问)。感谢@n33rma的编辑建议。

3确实是我的问题!我的每日备份一直都是大约1.7GB。现在我删除了~/.cache文件夹后,备份只有0.1GB左右!关于-atime标志的建议也很好。我在我的crontab中放置了一个类似的find命令,用于我的/tmp/文件夹;我使用-atime +1而没有遇到任何问题。 - Geremia
2问题:使用“du ~/.cache | sort -n”命令可以按目录大小排序查看。 - Scott Stensland
我的JetBrains文件夹在~/.cache里面有9GB,哈哈。 - BendaThierry.com

一般来说,可以安全地删除它。你可能需要关闭所有图形应用程序(如banshee、rhythmbox、vlc、software-center等)以防止程序访问缓存时产生混乱(我的文件突然不见了!?)。
它的大小很容易达到100+ MB,所以如果你想释放磁盘空间,就去删除吧。
正如BretDDylan McCall所指出的那样,这些文件的类型包括部分下载文件、浏览器缓存、媒体文件(如图标等),用于加速对相同文件的未来访问。
还有一件事要记住:删除一个应用程序并不一定会删除相关的~/.cache/removed_prog文件夹;在这种情况下,这些文件只是占用空间而不被使用。这些文件肯定可以被删除。

1如果你要清除/.cache文件夹,最好一次性全部清除(这样不会让任何应用程序处于不一致/部分状态),然后立即重启(以防止某些使用/.cache中文件的应用程序仍在后台运行)。 - thomasrutter
兄弟,我看到每个人都在谨慎地删除.cache文件夹中的任何内容,因为有很小的可能性某些程序会因为删除该文件夹而出现故障。所以,我们就这么说吧。如果你不知道要删除什么,或者哪些是安全可删的;就别删了。所以,最好还是不要碰这个文件夹,因为你可能会搞砸你的浏览器,或者其他你没想到的程序。 - Bas Lamerichs

这是我在所有机器上用来查找占用磁盘空间较大的脚本。
$ cat ~/bin/hog
#! /usr/bin/env bash
#
# -*- mode: shell-script -*-

case $# in
(0) dir='.';;
(1) dir=$1;;
(*) echo "usage: hog <dir>"
  exit 1;;
esac

du -s --one-file-system $dir/* $dir/.[A-Za-z0-9]* | sort -rn | head

此外,在我的机器上,我使用noatime选项挂载了我的主目录,所以我对上述内容进行了修改:
find ~/.cache -depth -type f -mtime +365 -delete

用于基于修改时间的键。
你可能也想将此内容添加到你的定时任务列表中,使用crontab -e命令,并添加以下行:
# Clean out ~/.cache
13 3 * * 0 chronic find ~/.cache -depth -type f -mtime +365 -delete

为了使文件大小以人类可读的方式显示,你可以使用管道将hog传递给| numfmt --field=7 --from-unit=1000 --to=iec,或者你也可以在head之前使用管道。我没有费心去弄清楚为什么在du中添加-h会搞乱它。 - mchid

我建议不要删除它。虽然我不是Linux专家(但我希望成为!),也不了解文件系统结构的具体情况,但你可以进入你的主文件夹并按下Ctrl+H来显示隐藏文件夹,以查看该文件夹中的内容。然后你可以进入.cache文件夹并查看其中的内容。

仅仅通过快速浏览我的系统,我知道banshee将专辑封面存储在缓存文件夹中(不确定为什么),Chrome在缓存文件夹中有数据,许多程序将日志保存在.cache文件夹中,还有其他一些东西。

我不确定这些文件是否仅仅是为了提高速度而临时存在(就像浏览器缓存一样),或者这个“缓存”是否包含了其他用途的文件(因为浏览器缓存提高速度的目的是为了通过重新访问服务器上的文件来抵消带宽的过度使用,而对于硬盘上的不同文件位置,读写时间应该没有明显差异)。

我希望有人比我更了解这个问题,并能给你一个更好的回答。


是的,我同意删除.cache不是一个好主意。如果可能的话,最好使用创建相关文件夹的程序。例如,最好通过Chrome来删除Chrome的缓存。如果一个程序没有提供可见的方式来管理其缓存,除非真的了解,否则最好不要去碰它,这样更安全。 - user25656
如果您不介意使用终端和键入命令,还有一件事可以考虑:du ~/.cache > cachefolders_size。它的作用是为您提供.cache目录中每个文件夹的大小列表。您可以将生成的文件中的信息粘贴到电子表格中,然后按照您的喜好进行排序。我在这里阅读到相关内容。 - user25656
42.cache的概念是它是可删除的(参见http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html)。应用程序不应该依赖它,而且我真的从来没有注意到有应用程序使用它错误。Banshee确实是一个有趣的例子,但它也是一个很好的例子:BretD说得对,你可能不想删除所有的缓存,因为通常它们存在是有原因的。Banshee获取封面艺术需要很长时间。它可以重新获取,但在此期间看起来会很丑。 - Dylan McCall
1@vasa1 或者你可以使用基于图形用户界面的磁盘使用情况分析工具。我认为Baobab应该在Ubuntu上可用(我在Debian中使用它)。 - Alois Mahdal
4@DylanMcCall 那个链接到标准的评论使得你的回答比其他所有答案都更有用。如果你把那个评论变成一个答案,我会给它点赞的。 - Parthian Shot
3为什么把“我不知道”作为答案发出来?这只会让我更加困惑.... - wogsland

删除.cache将删除大多数Web应用程序的配置设置。首先注意到的是Web浏览器和邮件客户端。
同样适用于文件夹.mozilla。 例如,它将从Thunderbird中删除所有帐户,您必须重新创建它们。至于Web浏览器,它将删除历史记录和一些内容设置
除此之外,删除这些文件没有任何问题。

11你弄混了.config和.cache。设置存储在.config中,它不应该被删除。然而,.cache中的任何东西,我是说每一样东西,都可以被删除。(任何一个愚蠢到把应用程序设置存储在那里的程序,在Linux中都没有存在的价值。) - Rob