我想在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。