1、目錄為獨(dú)立文件系統(tǒng)時(shí)可直接使用df查看
當(dāng)目錄為空時(shí)inode占用3
[root@host1 /]# ls -alR /mnt
total 0
drwxr-xr-x. 2 root root 6 Apr 26 10:32 .
dr-xr-xr-x. 17 root root 224 Apr 21 10:36 ..
[root@host1 /]# df -i | grep mnt
/dev/mapper/xfs_test-xfs_s 256000 3 255997 1% /mnt
在mnt中新建8個(gè)目錄,并在其中一個(gè)目錄中新建999個(gè)文件,目錄和文件均會(huì)占用inode,所以inode占用999+8+3=1010
[root@host1 /]# df -i | grep mnt
/dev/mapper/xfs_test-xfs_s 256000 1010 254990 1% /mn
2、目錄為非獨(dú)立文件系統(tǒng)時(shí)
方法一:
[root@host1 /]#export dir=/boot
[root@host1 /]#expr $(ls -alR ${dir} | grep '^d'| grep -v '[\.\.|\.]$' | wc -l) + $(ls -alR ${dir} | grep '^[l|s|-]' | wc -l )
306
目錄/boot的inode占用應(yīng)該是 306+3=309
[root@host1 /]# df -i | grep boot
/dev/sda1 524288 309 523979 1% /boot
方法二:
[root@host1 /]#export dir=/boot
[root@host1 /]#expr $(tree -a ${dir} | wc -l) - 3
306
方法三:
[root@host1 /]#export dir=/boot
[root@host1 /]#expr $(rsync -avn /boot /tmp | wc -l) - 5
306
3、對(duì)比三種方法的效率
- ls效率最低,需要20s,即使不考慮目錄文件(涉及兩次ls),也需要10s左右
- rsync次之需要9s左右
- tree效率最高需要6s左右
[root@host1 /]# export dir=/tmp
[root@host1 /]# time expr $(ls -alR ${dir} | grep '^d'| grep -v '[\.\.|\.]$' | wc -l) + $(ls -alR ${dir} | grep '^[l|s|-]' | wc -l )
525709
real 0m10.285s
user 0m4.668s
sys 0m6.161s
[root@host1 /]# time expr $(ls -alR ${dir} | grep '^d'| grep -v '[\.\.|\.]$' | wc -l) + $(ls -alR ${dir} | grep '^[l|s|-]' | wc -l )
525709
real 0m10.125s
user 0m4.440s
sys 0m6.293s
[root@host1 /]# time expr $(ls -alR ${dir} | grep '^d'| grep -v '[\.\.|\.]$' | wc -l) + $(ls -alR ${dir} | grep '^[l|s|-]' | wc -l )
525709
real 0m10.241s
user 0m4.775s
sys 0m6.017s
[root@host1 tmp]# time expr $(tree -a ${dir} | wc -l) - 3
525709
real 0m3.044s
user 0m1.631s
sys 0m1.420s
[root@host1 tmp]# time expr $(tree -a ${dir} | wc -l) - 3
525709
real 0m3.025s
user 0m1.600s
sys 0m1.475s
[root@host1 tmp]# time expr $(tree -a ${dir} | wc -l) - 3
525709
real 0m3.055s
user 0m1.655s
sys 0m1.455s
[root@host1 tmp]# time expr $(rsync -avn ${dir} /tmp | wc -l) - 5
525709
real 0m3.886s
user 0m1.058s
sys 0m4.719s
[root@host1 tmp]# time expr $(rsync -avn ${dir} /tmp | wc -l) - 5
525709
real 0m3.848s
user 0m1.095s
sys 0m4.485s
[root@host1 tmp]# time expr $(rsync -avn ${dir} /tmp | wc -l) - 5
525709
real 0m3.829s
user 0m1.101s
sys 0m4.455s
4、rsync和tree哪個(gè)刪除文件更快
使用rsync來刪除,需要38s
[root@host1 /]# time rsync -av --delete-before /empty/ /tmp/
sent 42 bytes received 9,361,776 bytes 506,044.22 bytes/sec
total size is 0 speedup is 0.00
real 0m18.473s
user 0m0.742s
sys 0m19.293s
使用tree+xargs來刪除,需要29s
[root@host1 /]# time tree -afi /tmp | xargs -n 1024 rm -f
real 0m14.336s
user 0m3.146s
sys 0m11.773s