tmpfs — 删除文件不会释放空间

mh-*_*bon 2 linux tmpfs

使用 fedora@latest,我已/tmp安装为tmpfs.

有时我会运行一些程序将大文件存储到其中,直到完全填满为止。

我尝试手动删除一些文件,希望释放空间,但空间并未释放。

我可以说它与打开的文件句柄无关,因为我一直在手动测试它,结果如下,

前,

$ df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/fedora-root    32G     20G  9,8G  68% /
tmpfs                     1,9G       0  1,9G   0% /tmp
/dev/sda5                 126G     71G   50G  59% /home
Run Code Online (Sandbox Code Playgroud)

然后我将一个文件复制到它上面,cp用于演示:

$ df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/fedora-root    32G     20G  9,8G  68% /
tmpfs                     1,9G    487M  1,5G  26% /tmp
/dev/sda5                 126G     71G   50G  59% /home
Run Code Online (Sandbox Code Playgroud)

然后我删除了文件,用 rm

$ df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/fedora-root    32G     20G  9,8G  68% /
tmpfs                     1,9G    487M  1,5G  26% /tmp
/dev/sda5                 126G     71G   50G  59% /home
Run Code Online (Sandbox Code Playgroud)

这是预期的行为tmpfs吗?

如果这是意外,我可以做些什么来解决这个问题?

小智 5

这不是预期的,除非这些文件在其他地方打开。在这种情况下,删除请求可以成功并且看起来是有效的,但是当不再使用文件时将释放空间。

您可以使用lsof这种方式查看那些待删除的文件:

lsof -nP +L1 /tmp
Run Code Online (Sandbox Code Playgroud)

正如@user75021 在另一个线程上所指出的,有一个很好的lsof快速入门,从中提取了此命令(第 3a 节)。