Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Python:Os文件大小为/dev/core返回垃圾_Python_File_Permissions_Operating System - Fatal编程技术网

Python:Os文件大小为/dev/core返回垃圾

Python:Os文件大小为/dev/core返回垃圾,python,file,permissions,operating-system,Python,File,Permissions,Operating System,我已经编写了一个python脚本,它通过我的文件系统(LINUX)收集文件的大小 以下是相关位: for name in files: file_name = os.path.join(root,name) file_size = os.stat(p).st_size if x>1000000000000: print x, p 因此,该脚本返回大小大于1 TB的任何文件的大小和路径。(我的系统上没有这样的文件——我的SSD空间是120GB。)它打印以下输出: 140737486

我已经编写了一个python脚本,它通过我的文件系统(LINUX)收集文件的大小

以下是相关位:

for name in files:
file_name = os.path.join(root,name)
file_size = os.stat(p).st_size
if x>1000000000000:
    print x, p
因此,该脚本返回大小大于1 TB的任何文件的大小和路径。(我的系统上没有这样的文件——我的SSD空间是120GB。)它打印以下输出:

140737486266368 /dev/core
140737486266368 /proc/kcore
但我知道这些文件并没有这么大。为什么我会得到这些错误的值


我应该注意,我已经以root用户身份运行了脚本。我有权限访问这些文件。这里出了什么问题?

问题是
/dev
/proc
中的文件不是普通文件,而是设备视图,例如内核视图。如果您检查该文件的大小(实际上是同一个文件,只是符号链接),您会注意到,即使
ls-l
报告的大小也非常大

最好的方法是至少跳过
/dev
/proc
/sys
/run
文件夹(谢谢,
user3553031
)。另一种可能是检查文件属性——它们会显示这些是特殊文件。但是,忽略特殊文件夹可能更容易


不幸的是,这是高度特定于操作系统的,上面的说明是针对Linux的。甚至不同的发行版也可能有不同的特殊文件,以及BSD、Windows和c。可能会有不同的行为。

还排除/sys和/run。如果你有任何安装上述任何一个的chroot,也排除它们。