美文网首页
shell脚本实现输出给定目录下一层各文件(夹)大小

shell脚本实现输出给定目录下一层各文件(夹)大小

作者: BoASir | 来源:发表于2021-02-02 20:10 被阅读0次

使用方法:
$sh xxx.sh 指定路径

脚本结果图
#!/bin/bash

function  caculateSubFileSize(){

  filetotal=$2

  if [ -f $1 ]; then
    #文件
    size=$(ls -l $subfilePwd | awk '{print $5}')
    filetotal=$((size+filetotal))
  elif [[ -d $1 ]]; then

    for subfile in `ls $1`; do
     subfilePwd="$1/$subfile"
     if [ -d $subfilePwd ]; then
       #文件夹
       caculateSubFileSize $subfilePwd $filetotal
     elif [[ -f $subfilePwd ]]; then
       #文件
       size=$(ls -l $subfilePwd | awk '{print $5}')
       filetotal=$((size+filetotal))
     else
       echo "这是什么东西?----- $subfilePwd"
     fi
    done

  else
    echo "这是什么东西?----- $subfilePwd"
  fi

  return $filetotal
}

function caculateFilesSize(){

  cd $1
    
  fileSizeArr=()

  for file in `ls $1`; do

    subTotal=0
    subfilePwd="$1/$file"

    caculateSubFileSize $subfilePwd 0
    subTotal=$?


    tmp=1000
    tmp2=$((tmp*tmp))
    fileSize=''

    if [ $filetotal -gt $tmp ]; then
      if [ $filetotal -gt $tmp2 ]; then
        fileSize="$(awk 'BEGIN{printf "%.2f\n",'$filetotal'/'$tmp2'}')M"
      else
        fileSize="$(awk 'BEGIN{printf "%.2f\n",'$filetotal'/'$tmp'}')K"
      fi
    else
      fileSize="$(awk 'BEGIN{printf "%.2f\n",'$filetotal'/'1'}')B"
    fi

    fileSizeArr+=($fileSize)

    echo $file  $fileSize
  done

  echo '--------纯大小输出,方便填入wiki文档--------'
  for i in ${fileSizeArr[@]}; do
      echo $i
  done
}

caculateFilesSize $1




相关文章

  • shell脚本实现输出给定目录下一层各文件(夹)大小

    使用方法:$sh xxx.sh 指定路径

  • Shell脚本

    Shell脚本 文件夹排序脚本 对当前目录 对当前目录所有的文件夹名称及其文件名称进行排序的操作 对当前目录及其子...

  • Linux数据库定时自动备份

    一、创建存放执行备份的shell脚本已经备份的sql文件目录 进入home目录 创建备份文件夹 进入备份文件夹 创...

  • 查看当前文件目录各个文件夹大小

    1. 查看当前文件目录各个文件夹大小 注意:是文件夹 结果显示是:当前目录下的各个文件夹的大小,不会查询各文件下的...

  • adb命令操作文件或文件夹

    文件夹及文件个数 文件夹大小 push文件到system目录 说明:ls -l长列表输出该目录下文件信息(注意这里...

  • Shell小脚本

    删除目录下的除今天外的所有文件夹 目录下的文件夹规律【年月日时分秒】 shell脚本 kill指定name的pid...

  • Linux 转换 find 命令的返回结果为 shell arr

    在shell脚本中,find命令用于搜索给定目录下符合搜索条件的的文件或子目录,如命令var=$(find "$P...

  • Linux常用命令

    查看该目录下各文件夹的大小 du --max-depth=1 -h 计算文件夹大小 为了快算显示,同时也只是想查看...

  • shell循环解压缩

    场景 在home目录下有很多文件夹,每个文件夹下又有很多压缩包,现想通过shell脚本来解压home目录下的所有压...

  • shell 递归遍历目录

    该shell是递归遍历/home目录,并输出每个文件的大小 引荐自:https://www.jianshu.com...

网友评论

      本文标题:shell脚本实现输出给定目录下一层各文件(夹)大小

      本文链接:https://www.haomeiwen.com/subject/icfutltx.html