日期:2014-05-16  浏览次数:20777 次

shell求救:获取一个文件夹下的所有文件,判断其大小
我写的shell如下:
#!/bin/bash
for filename in `ls /test/src`
do
  echo "entey 1"
  fsize=$(ls -l $filename | cut -d '*.txt' -f 5)
  echo $fsize
  echo $filename
  if [[ $fsize = 0 ]]; then
  echo "too small"
  fi
done
但是怎么也得不到想要的结果。运行时什么也不打印。
如果改为这样:
#!/bin/bash
filelist="/test/src"
for filename in $filelist
 do
  echo "entey 1"
  fsize=$(ls -l $filename | cut -d '*.txt' -f 5)
  echo $fsize
  echo $filename
  if [[ $fsize = 0 ]]; then
  echo "too small"
  fi
done
打印出的文件大小是0,文件名是/test/src

请问各位,要怎么改才能遍历文件,获取文件大小啊?

------解决方案--------------------
ls | xargs du

------解决方案--------------------
ls -l|awk '{print $9,$5}'
行不?