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命令的运用。