我有时会查看/tmp
包含占用磁盘空间的所有这些文件的目录,然后想“也许我应该去那里做点什么。“
另一方面,在我使用 Linux 的 10 多年中,我从未遇到过磁盘满到需要手动干预的情况。所以某个地方的某个东西正在帮我清理房间(?)。所以也许我应该从 chalupa 中抽身,让事情顺其自然。
这个问题让我特别担心,因为我以前就因为过度修改系统文件而受过伤害,其中一些文件实际上非常重要。例如,大约在 1999 年,我被“隐藏服务器”骗局欺骗了:
如果你的 Windows 98 有 hidserve.exe 文件,请立即删除它,它正在监视你
是的,之后必须恢复出厂设置。谁知道 hidserve.exe 实际上是“人机接口设备服务”... 运行键盘和鼠标的关键进程?
所以,
我该停止痴迷吗
/tmp
?谁、什么、何时进程被
/tmp
清空,这样我就不用担心了?
答案1
通常/tmp
在启动时会清理目录– 要么通过启动过程删除所有文件,要么仅仅将其完全放在内存中(许多 Linux 发行版现在tmpfs
在 /tmp 上安装,因此文件首先不会存储在磁盘上)。
如果你重启了几次,并且仍然满了,可能是时候检查一下你的配置了。
旧文件可能在系统运行时进行清理,但这取决于您的操作系统。
例如,所有基于systemd通过“systemd-tmpfiles-clean.{timer,service}”定期删除 10 天前修改的文件。
一些其他系统可能会使用 执行相同的操作tmpwatch
,但这很少默认安装。
删除/tmp
一段时间没用过的文件通常是安全的,除了像套接字这样的“特殊”文件之外。另一个例外是“锁文件”,例如/tmp/.X0-lock
。
还有另一个临时文件位置,/var/tmp
适用于大型和/或长寿命文件,因此它特别适用于不是重启后会清理,如果操作系统定期进行清理,则/var/tmp
通常比 的有效期长得多/tmp
。但是,如果空间不足,通常也可以安全地删除其中的大多数内容。
答案2
删除系统可执行文件与删除数据文件(例如存储在中的文件)有很大不同/tmp
。我从未遇到过/tmp
目录在我的系统上变得很大的问题(至少在我弹出创建了相当大的 tmp 文件的守护进程之后),但您使用的软件可能会让事情变得大不相同。一般来说,我认为删除临时文件在最坏的情况下会导致暂时问题。此外,我假设您使用的是 ext 文件系统,因此任何正在使用的文件都不会被删除,直到使用它们的程序对它们完成操作为止。因此,这应该是非常安全的。如果它确实破坏了某些东西,那么我会将其报告为错误。