前言:今天df看到磁盤快滿了,通過查看發現很多都是隱藏文件的,但是通過du又查不到隱藏目錄的大小 不知道 哪些目錄太大?怎么查看方便呢?
所以寫了個腳本進行統計
腳本的功能,打印出指定目錄下的一級目錄所有隱藏目錄的大小并且按M進行排序
#!/bin/bash #Author:Ajian #Date : 2009-08-17 #website:www.ohlinux.com for i in `find $DOCUMENT -maxdepth 1 -name ".*" -type d -print ` do du -sm $i done | sort -n | awk '{print $1"M"," ",$2}'
后來我又減化了下到一個命令
find /root -maxdepth 1 -name ".*" -type d -print | xargs du -sm | sort -n | awk '{print $1"M",$2}'
解説:
1、查找隱藏目錄 使用find /path -name “.*” -type d -print
2、查找一級的隱藏目錄添加上 -maxdepth 1
3、對目錄進行以M兆的統計 du -sm
4、對大小進行排序 默認以第一列 sort -nr (r是反向排序)
5、awk 在這里進行修飾了下因為du -sm 是沒有顯示單位的 用du -sh 有單位但增加了排序的麻煩
6、 腳本和命令的書寫區別 因為腳本用的for 語句是分條讀入的所以如果把sort -n | awk ‘{print $1″M”,” “,$2}’ 放到 du -sm $i 之后不會對順序產生變化,因為每次就對一條進行排序肯定最后的結果是沒有影響的 而命令是用管道的方式 每次都是一批處理完后交給后面進行 注意腳本和命令的區別。
結果:
13M /root/.opera 13M /root/.svnqt 15M /root/.cpan 16M /root/.mplayer 78M /root/.tencent 100M /root/.config 116M /root/.VirtualBox 158M /root/.icons 160M /root/.google 218M /root/.kde4 258M /root/.mozilla 517M /root/.thumbnails 650M /root/.beagle