Linux下查看文件和文件夹大小的df和du命令
如果当前目录下文件和文件夹很多,使用不带参数 du 的命令,可以循环列出所有文件 和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定 深入目录的 层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件 的使用空间大小.
提醒:一向命令比 linux 复杂的 FreeBSD,它的 du 命令指定深入目录的层数却是比 linux 简化,为 -d。
C 代码 1. [root@bsso yayu]# du -h --max-depth=1 work/testing 2. 27M work/testing/logs 3. 35M 4. work/testing
5. [root@bsso yayu]# du -h --max-depth=1 work/testing/* 6. 8.0K work/testing/func.php 7. 27M 8. 8.1M 9. 8.0K 10. 12K 11. 8.0K 12. 8.0K 13. 8.0K 14. work/testing/logs work/testing/nohup.out work/testing/testing_c.php work/testing/testing_func_reg.php work/testing/testing_get.php work/testing/testing_g.php work/testing/var.php
15. [root@bsso yayu]# du -h --max-depth=1 work/testing/logs/ 16. 27M work/testing/logs/ 17. 18. [root@bsso yayu]# du -h --max-depth=1 work/testing/logs/* 19. 24K 20. 8.0K 21. 27M work/testing/logs/errdate.log_show.log work/testing/logs/pertime_show.log work/testing/logs/show.log
值得注意的是,看见一个针对 du
和 df 命令异同的文章:《du df 差异导致文件系统误报 解决》。
du 统计文件大小相加 df 统计数据块使用情况
如果有一个进程在打开一个大文件的时候,这个大文件直接被 rm 或者 mv 掉,则 du 会更 新统计数值,df 不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被 Kill 掉。
如此一来在定期删除 /var/spool/clientmqueue 下面的文件时,如果没有杀掉其进程,那 么空间一直没有释放。