在一个不同的问题我发现“有一些目录你不应该运行“, 然后 ”输出应该告诉您什么已经完成以及下一步是什么导致挂起”。但是,无法确定是什么“下一个" 除非您知道du
检查目录的顺序。那是什么命令?它似乎不是基于名称、上次修改时间、上次访问时间或创建时间(通过检查du --max-depth=1 2>/dev/null
against的输出确认ls --time=[ctime/atime/birth]
),并且它没有在man du
或中描述这里。
(我认识到,为了解决我最初的问题,这些信息并不是必需的 - 我可以尝试du
对目录集进行尝试,直到找到有问题的目录。但我很好奇!)
(对于过于宽泛的标签表示歉意,但没有特定的du
标签,并且无法提交没有标签的问题)
答案1
没有特定的顺序。它按照对象在目录中出现的顺序列出对象,基本上是随机的。 (这就是您引用的评论错误的原因 - 仅通过观察已经完成的条目您无法知道接下来会发生什么。)
你唯一能拥有的顺序是它尊重根你已经在命令行中给出了它;所以,如果你像这样运行它du /home /var
,它将运行 /home 中的所有元素以随机顺序然后它会输出 /var 中的内容以随机顺序。
而且,运行它应该不会有太大问题/proc
。
但是,如果您想排除某些目录,可以使用一些开关:
-X, --exclude-from=FILE
exclude files that match any pattern in FILE
--exclude=PATTERN
exclude files that match PATTERN
-x, --one-file-system
skip directories on different file systems
例如,du -x /
肯定会跳过 /proc 和 /sys,因为它们是已安装的虚拟文件系统。