我想根据磁盘使用情况按降序列出所有文件,并从以下位置获取了以下命令这:
列出当前目录中前 10 个最大的文件:
du . | sort -nr | head -n10
要列出当前目录中最大的目录:
du -s * | sort -nr | head -n10
但是,它们都只列出目录。
如何du
在其输出中仅包含常规文件?
奖金:
以下du
选项的用途是什么(似乎没有效果)?:
-a, --all write counts for all files, not just directories
答案1
如果您有 GNU ,则使用(或在 zsh 中使用 shell glob 作为参数)du
向其发送常规文件(或目录,或任何您想要过滤的内容)的列表:find
find . -type f -print0 | du --files0-from=-
du *(.) # zsh, regular non-hidden files in the current directory
du
默认情况下,仅打印该目录中目录内文件大小的总和,但您也可以让它打印这些单独的文件大小,其作用如下-a
:
% du /usr/bin
68 /usr/bin/lou_maketable.d
100 /usr/bin/vendor_perl
464 /usr/bin/core_perl
4 /usr/bin/site_perl
1104024 /usr/bin
% du /usr/bin -a | head
4 /usr/bin/preparetips5
36 /usr/bin/autoupdate
4 /usr/bin/python3.9-config
0 /usr/bin/mkoctfile
60 /usr/bin/zdump
16 /usr/bin/fstopgm
4 /usr/bin/brltty-setcaps
40 /usr/bin/sleep
8 /usr/bin/pnmquantall
20 /usr/bin/extract_mpeg2