我可以安全地删除/ var / cache吗?


78

我的磁盘空间不足,并指出我的/var/cache目录很大。我可以安全地删除它吗?(使用Arch Linux,BTW)。

cache 

6
我会检查其中的内容,但是鉴于那是pacman存储所在的位置,因此您可能要运行pacman -Sc甚至pacman -Scc是清理整个包缓存的包。
xenoterracide

下的大多数(但不是全部)文件/var/cache都可以安全删除。不要删除目录或更改其所有权。跑去du /var/cache/* | sort -n看看有什么空间。在这里询问您是否不知道大目录是否可以安全清理。
Gilles

怎么样一个磁盘使用情况分析- alternativeto.net/software/windirstat/?platform=linux
亚伦牛顿

Answers:


27

没有

首先,我相信这/var/cache/bind/是bind9期望存储其区域文件的默认目录(至少在Debian上;我不知道其他发行版是否会效仿)

另外,根据本文档,pacman(Arch linux使用的程序包管理器)将其程序包缓存存储在下面,/var/cache/pacman/pkg/并且很可能只希望它自己修改内容。

我建议您更仔细地阅读文档,并决定现在是否是清除软件包缓存的好时机。


是的,不要删除/ var / cache / apt / archives目录,但是您可以删除文件:/var/cache/apt/pkgcache.bin和/var/cache/apt/srcpkgcache.bin,但是它们将由创建“ apt-get更新”。
diyism 2013年

6
在Debian上,/var/cache/bind包含从其他名称服务器传输的区域文件-它不应包含主区域。Debian遵循FHS,FHS要求下的文件/var/cache必须可删除。当然,问题是关于Arch的问题,另外,在没有至少弄清楚文件是什么之前,不应删除文件。
derobert

19
这就像说您不应该在不知道Windows文件是什么的情况下删除Windows临时目录中的文件。如果该文件夹用于临时文件,并且您的程序在其中放置了非临时数据,那么这对您的程序就不是一个大问题,而不是/ var / cache
Tor Valamo 2015年

81

来自http://www.lindevdoc.org/wiki//var/cache

很抱歉(很晚)回答,但是我相信将这一点包括在内以供将来参考很重要。

突出显示确实回答了这个问题的位。

/ var / cache目录包含缓存的文件,即已生成的文件,可以随时重新生成,但是值得保存它们以节省重新计算它们的时间。

任何应用程序都可以在此处创建文件或目录。假定此处存储的文件不是关键文件,因此系统可以定期或在其内容变得太大时删除/ var / cache的内容。

任何应用程序都应考虑到此处存储的文件随时可能消失,并准备重新计算其内容(有一些时间限制)。

因此,可以的是,您可以删除这些文件而不会发生任何不良情况。


7
如果您要删除并稍后使用,则必须跳过一些箍/var/cacheapt
Matthias Braun 2014年

13

正如其他人所说,/var/cache/任何应用程序都可以使用它来存储信息,以节省检索时间。不过,以我的经验来看,其中大部分空间都来自系统的程序包管理器。

从Arch Linux Wiki

pacman将其下载的软件包存储在其中/var/cache/pacman/pkg/,并且不会自动删除旧版本或卸载的版本,因此有必要定期清理该文件夹,以防止该文件夹的大小无限期增长。

pacman -Sc

但是,除非存储空间是一个迫在眉睫的问题,否则会在以后导致不兼容的情况下为避免以后的麻烦而烦恼;这些其他工具应该被利用:paccachepkgcachecleanpacleaner


对于其他系统:

基于Redhat(Fedora,CentOS,SL等)

yum clean all
# or
dnf clean all

基于Debian的(Ubuntu,...)

apt-get autoclean

基于SUSE

zypper clean

2
+1!今天我注意到,我正在运行的磁盘空间不足......短短du -hs /* 2> /dev/null透露,/var是非常大的。原来,我的吃豆人缓存为91GB。pacman -Sc清理旧软件包,并将pacman缓存减少到5GB!
daniel451 '17

1
本文paccahce
Arch

9

我发现此帖子很有趣,因为我想从Ubuntu 15.10上的/ var / cache中删除它以改善磁盘空间,这是我发现的:

在运行“ sudo apt-get clean”后,/ var / cache / apt缓存文件被删除,但是目录结构保持不变,如果您要改善磁盘空间,这没问题;如果要使用apt-get [auto] remove / [auto] clean等来改善磁盘空间,应该最后运行'apt-get clean'。

至于目录中的所有其他内容,我完全同意“ Tor Valamo”及其解释。在缓存中,使用缓存的系统和应用应能够重新生成在此创建的任何内容。由于缓存是在应用程序之间重新生成的,因此性能开销很少

也就是说,每个系统都可能不符合此原则,请进行一些测试,然后尝试将缓存目录中的所有内容移至新位置,并测试系统和所有应用程序是否正常运行,然后再永久删除缓存。


1

您可以使用确定自己lsof

运行lsof -Pn +D /var/cache/ | awk '{print $1}' | sort | uniq以查看哪个软件当前在该目录中具有任何打开的文件。如果有什么看起来很重要(或者您不知道这是什么),请不要删除它。

此外,您不应该只是在没有备份的情况下扩展目录;反之,这甚至适用于/tmp。如果当前正在使用文件,则只有在关闭处理程序之后,您的删除操作才会注册(您会在文件系统中看到它的消失)。而且,lsof如果缺少预期的文件,则删除可能导致当前正在运行的其他程序(请参阅上面的命令)崩溃。

基本上,仅删除您知道可以安全删除并且当前未被其他正在运行的软件使用的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.