linux统计多个文件大小总和

首先:查看当前文件夹大小的命令是:

[root@host1 test]# du -sh
39M	.

  查看当前文件夹下所有文件的大小:

[root@host1 test]# du -sh *
108K	config-2.6.32-573.el6.x86_64
264K	efi
284K	grub
27M	initramfs-2.6.32-573.el6.x86_64.img
4.4M	initrd-2.6.32-573.el6.x86_64kdump.img
4.0K	lost+found
204K	symvers-2.6.32-573.el6.x86_64.gz
2.5M	System.map-2.6.32-573.el6.x86_64
8.0K	test_123
8.0K	test_abc
12K	testlog
8.0K	test_xyz
4.1M	vmlinuz-2.6.32-573.el6.x86_64

  查看当前文件夹下所有文件的大小并按照大小来排序:

[root@host1 test]# du -sk * | sort -n
4	lost+found
8	test_123
8	test_abc
8	test_xyz
12	testlog
108	config-2.6.32-573.el6.x86_64
204	symvers-2.6.32-573.el6.x86_64.gz
264	efi
284	grub
2528	System.map-2.6.32-573.el6.x86_64
4124	vmlinuz-2.6.32-573.el6.x86_64
4492	initrd-2.6.32-573.el6.x86_64kdump.img
27308	initramfs-2.6.32-573.el6.x86_64.img

  由于du -sh命令显示出来的单位不统一,所以我们用du -sk命令使单位统一以进行排序

  查找以".img"结尾的所有文件的大小的总和:

[root@host1 test]# find . -name "*.img" | xargs du -cm
5	./initrd-2.6.32-573.el6.x86_64kdump.img
27	./initramfs-2.6.32-573.el6.x86_64.img
32	总用量

  查找60天以前所修改的文件的大小总和:

[root@host1 test]# find . -mtime +60 | xargs du -cm
1	./grub/splash.xpm.gz
1	./config-2.6.32-573.el6.x86_64
1	./symvers-2.6.32-573.el6.x86_64.gz
1	./efi/EFI/redhat/grub.efi
5	./vmlinuz-2.6.32-573.el6.x86_64
3	./System.map-2.6.32-573.el6.x86_64
1	./.vmlinuz-2.6.32-573.el6.x86_64.hmac
8	总用量

  如果我们把所有需要统计的文件的名字列入到一个表格里,我们还可以这么用:

[root@host1 test]# cat list.txt  | xargs du -cm
27	initramfs-2.6.32-573.el6.x86_64.img
5	initrd-2.6.32-573.el6.x86_64kdump.img
1	config-2.6.32-573.el6.x86_64
32	总用量
当然,这条命令等同于:
[root@host1 test]# du -cm `cat list.txt `
27	initramfs-2.6.32-573.el6.x86_64.img
5	initrd-2.6.32-573.el6.x86_64kdump.img
1	config-2.6.32-573.el6.x86_64
32	总用量

  总的来说需要运用xargs命令,这个命令主要是把接收到的数据重新格式化,再将其作为参数提供给其他命令,下一篇主要讲下xargs命令的运用。

  

  

原文地址:https://www.cnblogs.com/01-single/p/6882385.html