UNIX Shell脚本:列出每个文件系统中的所有文件和目录,包括大小

时间:2018-11-23 13:16:45

标签: bash performance shell unix

我想在Unix中列出每个文件系统的所有文件和目录,并将输出保存到文件中。我的脚本运行正常,但是这种性能不是很好。

这是脚本的一部分:

for fs in $(df -h | awk -F"%" '{print $2}' | sed '1,2d')
do
    for i in $(du -a ${fs} | sort -hr | awk -F" " '{print $2";"$1}')
    do
     if [ -d $(echo ${i} | awk -F";" '{print $1}') ]
     then
      echo -e "FileSystem:"${fs}";Dir:"$(echo ${i} | awk -F";" '{print $1}')";Size:"$(echo ${i} | awk -F";" '{print $2}') >> dirSize.log
     else
      echo -e "FileSystem:"${fs}";File:"$(echo ${i} | awk -F";" '{print $1}')";Size:"$(echo ${i} | awk -F";" '{print $2}') >> fileSize.log
     fi
    done

grep "FileSystem:"${fs}";" fileSize.log | sed -n 1,10p >> top10FilebySize.log

done

在此脚本性能方面,我需要帮助,因为它消耗了大量CPU。

0 个答案:

没有答案