从shell中,我需要列出所有子目录的大小。我目前正在使用以下命令:
du -hs * | sort -hr
然而,这只能获取一层目录下的内容,无法遍历整个目录树。
最简单的是:
du -h --max-depth=1 parent
这将显示parent
的所有子代大小。如果您还想要孙代,可以执行以下操作:
du -h --max-depth=2 parent
如果您希望整个家庭参与
du -h parent
所有这些只会总结每个子目录到给定级别的总目录大小(除了最后一个,它将给出所有内容)。-S
标志。**/*
。shopt -s globstar
du -hs **/* | sort -hr
shopt -u globstar
shopt -s globstar
启用 globstar
选项。 - UtahJarheaddu -b | sort -n
sort
命令中使用-n
参数。通配符很好用,但它们也会列出文件而不仅仅是目录。以下命令将返回所有目录的大小,而且只有目录:
find . -type d -exec du -sh {} \; | sort -hr
maxdepth
特性应该可以解决你的问题,但出于某种奇怪的原因,它似乎无法正常工作:
find ./ -maxdepth 1 -type d -exec du -k {} \;
maxdepth
?
du
默认情况下显示树中所有目录的大小。-s
选项可以停止它这样做。du -h . | sort -hr
有什么问题? - pjh