是否du /
列出每个文件? 有没有更好的办法?
答案1
如果目标是列出文件系统上的每个文件/文件夹,那么您可以使用ls
递归选项-R
# ls -R /
如果您尝试使用大小来过滤文件,请执行以下操作
# find / -type f -size +10c
上述命令为您提供大小-type f
大于 10 字节(选项)的文件(选项)。c
答案2
尝试这个:
du -sah /
它的意思是:
”S总结A所有文件和文件夹,请以H人类可读的输出”
无论如何,您可能更喜欢使用“df”命令。它更快,并列出设备的输出,这可能是更相关的信息:
df -h
答案3
要列出所有文件和目录,您有很多选择
SHW@SHW:/tmp # time du . > /dev/null
real 0m0.046s
user 0m0.000s
sys 0m0.000s
SHW@SHW:/tmp # time find . > /dev/null
real 0m0.003s
user 0m0.000s
sys 0m0.000s
SHW@SHW:/tmp # time ls -aR > /dev/null
real 0m0.003s
user 0m0.004s
sys 0m0.000s
SHW@SHW:/tmp # time tree -a > /dev/null
real 0m0.002s
user 0m0.000s
sys 0m0.000s
SHW@SHW:/tmp # du -sch .
4.1M .
4.1M total
阅读每个命令的手册页以获取更多信息
至少对于上面的例子来说,tree -a
似乎很快。
/tmp
目录包含8个文件、21个目录、4.1M数据。
答案4
du -a /
将列出您拥有的所有目录中的所有文件读和搜索访问权限(前提是您还具有对其父目录的读取权限)。它需要搜索权限,因为它需要能够报告这些文件的disc usage,而不是仅仅列出它们。
对于一些du
像 GNU 这样的实现du
,它列出了文件确实与目录条目如果一个文件有多个硬链接(多个目录条目指向它),则只会列出其中一个,以便文件不列出多次。
.
要列出除和 之外的所有目录条目..
,您可以使用:
find /
这还将列出您拥有的目录中的条目读并不是搜索进入。
对于所有目录条目,包括.
和..
:
ls -Ra /
(关于目录访问的相同注释)。
如果目的是与 给出的文件数进行比较df -i
,那么您将使用这种du -a
方法,但随后您需要添加标志-x
以限制为一个文件系统。另请注意,除了目录访问问题之外,它还会丢失某些进程仍在打开但已被删除的文件、被另一个文件系统屏蔽的文件,并且还要注意一些文件系统(例如 ext4)具有特殊保留文件(索引节点)未链接到任何目录,因此即使在最好的情况下,您也会发现 给出的数字df -i /
与 给出的数字之间存在差异du -ax /// | grep -c ///
。
另请参阅 GNUdu
的:
du -sx --inodes /
得到那个计数。