Shu*_*eng 3 shell bash terminal disk-usage files
我想列出的基于磁盘的使用情况降序排列的所有文件,并从获得以下命令此:
要列出当前目录中前 10 个最大的文件:
du . | sort -nr | head -n10列出当前目录中最大的目录:
du -s * | sort -nr | head -n10
但是,它们都只列出目录。
如何du在其输出中仅包含常规文件?
奖金:
以下du选项用于什么(似乎没有效果)?:
-a, --all write counts for all files, not just directories
Run Code Online (Sandbox Code Playgroud)
如果您有 GNU du,则使用find(或在 zsh 中使用 shell glob 作为参数)向它发送常规文件(或目录,或任何您想过滤的内容)的列表:
find . -type f -print0 | du --files0-from=-
du *(.) # zsh, regular non-hidden files in the current directory
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)