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