shell脚本查找大目录
时间:2020-03-05 15:31:43 来源:igfitidea点击:
在教程中,我们将查看一个shell脚本,可以快速找到Linux服务器中最大的目录。
如果要在文件系统上清理空间,这非常有用。
shell脚本显示X在给定目录路径中消耗空间的目录数。
在我使用du命令的脚本中,然后排序和头命令。
脚本找到最大的目录
让如何编写脚本以查找顶端目录,如下所示:
#/bin/bash #check if user input argument if [ $# -eq 0 ]; then #if no argument print next messge and exit from script echo "Usage:./top5dir.sh /home/yevhen/ Here is the biggest directories located in /home/yevhen/: N°1 : /home/yevhen//Fly is 14043 Mb N°2 : /home/yevhen//VirtualBox VMs is 5837 Mb N°3 : /home/yevhen//Downloads is 2224 Mb N°4 : /home/yevhen//.icedove is 963 Mb N°5 : /home/yevhen//Downloads is 645 Mb N°6 : /home/yevhen//.wine is 602 Mb N°7 : /home/yevhen//.cache is 324 Mb N°8 : /home/yevhen//Dropbox is 324 Mb N°9 : /home/yevhen//.config is 263 Mb N°10 : /home/yevhen//.local is 153 Mb" exit 1 fi # Save first arguments to variables CheckedDir="" #HeadValue= #set value for variable count value 1 count=1 #just print empty line echo "" #Print next message: echo "Here is the ${HeadValue} biggest directories located in ${CheckedDir}:" echo "" #Getting list of directories and space they use. du -a --max-depth=1 --one-file-system ${CheckedDir}/| #next we sort result sort -rn | sed "1d" | # next we get only first X directories head -"${HeadValue}" | #next print result to user while read size dirrr ; do #counting size in Mb size="$(( size/1024 ))" #show output for user echo "N°${count} : ${dirrr} is ${size} Mb" ((count++)) done echo ""