搜索/显示文件大小

搜索/显示文件大小

有没有一种简单的方法可以查看目录并说,对于每个以 az 开头的文件,打印这些文件的总大小?

例如

for i in {97..122}; du (something); done

即输出>>

a-123kb

b-22kb

...

z-1245kb

答案1

这可以通过通配符来实现

$ du [a-z]*
456 asdf.png
12  awk.trace
28  blink_image_resources_200_percent.pak
0   Books

请注意,如果由 glob 扩展的项目是目录,du则将遍历该目录的内容,因此如果您只关心目录的总大小而不是项目的单独列表,则可能需要执行du -s [a-z]*.如果您想要人类可读的后缀,例如kM,请使用-h选项。

当然,shell 喜欢bash并且ksh具有更细粒度的模式匹配, bash具有extglobshell 选项并globstar用于递归遍历来匹配文件名。find命令还可以用于递归和细粒度的文件名匹配,甚至排除目录,如

find . -maxdepth 1 -mindepth 1 -type f -exec du -s {} \;

还值得注意的是,大括号扩展{0..9}不执行路径名扩展,即*扩展为目录中已存在的内容,{0..9}扩展为当前工作目录中可能存在或不存在的标记列表。

相关内容