linux下统计目录中文件的大小,代码如下:
复制代码代码示例:
#!/bin/sh
usage(){
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
## delete the slash at the end of directory name
## if MIN_SIZE is specified
## get thE NUMBER part of MIN_SIZE except the unit
## if size is not an integer number, then exit
case $unit in
du -s $dir/*|sort -rn|awk -v size=$msize '{\ 用法: dfdir <目录> [最小文件大小,可省略,单位可为k/K/m/M/g/G, 默认为K] 说明: 大小超过1G的文件输出单位为G,超过1M的文件输出为单位为M 例1:
复制代码代码示例:
dfdir.sh /mnt/backup/lvm/
1.8 G /mnt/backup/lvm/win2kvm 330.7 M /mnt/backup/lvm/win2kvm.tar.bz2 36.0 K /mnt/backup/lvm/chkrootkit.tar.gz 例2:
复制代码代码示例:
dfdir.sh /usr/share 10m 显示大小超过10M的文件
29.1 M /usr/share/man 19.0 M /usr/share/gtk-doc 18.5 M /usr/share/locale 17.4 M /usr/share/themes 11.4 M /usr/share/fonts 例3:
复制代码代码示例:
dfdir.sh /bin 100 显示/bin下超过100K的文件
493K /bin/bash 160K /bin/tar
个人感觉,这个shell脚本写的不错,主要是多参数的灵活应用,方便输出想要的数据格式。 |