Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中查找已删除打开文件的大小?_Linux_Filesystems - Fatal编程技术网

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

在Linux中查找已删除打开文件的大小?,linux,filesystems,Linux,Filesystems,我知道Linux中所有关于删除打开的文件的喧嚣仍然在文件系统中徘徊和占据空间 我想要的是找到这些已删除的打开文件的大小 sudo find/proc/[0-9]*/fd-ls | grep'(已删除)提供了列表,但它会从proc文件系统而不是删除的文件中生成有关“虚拟符号链接”的信息 有没有办法获取此信息?这将打印/proc/[pid]/fd/[fd]路径、其符号链接目标以及实际文件的大小: find /proc/[0-9]*/fd -lname '*(deleted)' \ -prin

我知道Linux中所有关于删除打开的文件的喧嚣仍然在文件系统中徘徊和占据空间

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

sudo find/proc/[0-9]*/fd-ls | grep'(已删除)
提供了列表,但它会从proc文件系统而不是删除的文件中生成有关“虚拟符号链接”的信息


有没有办法获取此信息?

这将打印
/proc/[pid]/fd/[fd]
路径、其符号链接目标以及实际文件的大小:

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

可能有更聪明的方法;-)

“stat-L路径”有效吗?或者,“lsof”可能会提供您需要的信息。-L标志是可能的最短答案。stat没有给出错误的结果,“stat-L$file”是正确的。另外,node、python和golang中的stat函数也显示了正确的大小。看起来是这样的。谢谢。与size first相同以允许排序:find/proc/[0-9]*/fd-lname'*(已删除)'2>/dev/null | perl-lne'($l=readlink)=~s/(已删除)$/;打印-s,“$\u$l”|排序-g