查找 Linux 中已删除打开文件的大小?

Finding size of deleted open file in Linux?

我知道围绕 Linux 中已删除打开文件的所有喧嚣仍在徘徊并占用文件系统 space。

我要查找的是这些已删除的打开文件的大小。

sudo find /proc/[0-9]*/fd -ls | grep '(deleted)' 给了我列表,但它会从 proc 文件系统中产生有关 "virtual symbolic link" 的信息,而不是已删除的文件。

有没有办法获取这些信息?

这会打印 /proc/[pid]/fd/[fd] 路径、它的符号链接目标和实际文件的大小:

find /proc/[0-9]*/fd -lname '*(deleted)' \
    -printf '%p => %l\t' -exec stat -Lc '%s' {} \; 2>/dev/null

可能有更聪明的方法来做到这一点;-)