如何对linux中某个目录下的所有文件执行“du”?

如何对linux中某个目录下的所有文件执行“du”?

这是我尝试过的:

[demo@ ~]# ll /usr/local/apache2/logs/|xargs |du -hm -
du: cannot access `-': No such file or directory

我想查看每个文件占用的单位空间量m

如何以正确的方式做这件事?

答案1

我假设ll是的别名ls -l,在这种情况下

du -hm /usr/local/apache2/logs/*

答案2

du -s /usr/local/apache2/logs/* | sort -rn | cut -f2 | xargs -d '\n' du -sh

答案3

您是否尝试不进入子目录?

怎么样:

find . -type f -maxdepth 1 |xargs du -m 

如果需要,通过管道传输至“sort -n”。

答案4

好吧,不是确切地您所要求的,但tree -fis可能tree -fih会对您有一点帮助,并且是一个小巧紧凑的解决方案。:)

第一个命令输出递归目录树,同时显示文件大小(以字节为单位);第二个命令与第一个命令相同,但具有“人类可读”的输出,显示以千字节、兆字节、千兆字节为单位的大小……无论它认为适合该文件的单位是什么。

相关内容