du的功能:`du`reportstheamountofdiskspaceusedbythespecifiedfilesandforeachsubdirectory(ofdirectoryarguments).withnoarguments,`du`reportsthediskspaceforthecurrentdirectory。
很显著,与df不同,它拿来查看文件或目录所占用的c盘空间的大小。
字面理解,du指diskusage,df指diskfree。du一般针对的是目录,而df一般针对的是文件系统。
统计文件个数看这篇:Linux下统计文件数目
一、du使用(一)句型&常用选项:
du [-abcDhHklmsSx][-L ][-X ][--block-size][--exclude=][--max-depth=][--help][--version][目录或文件]
-h:–human-readable单位控制,默认字节;以K,M,G为单位,增强信息的可读性
-a:显示目录占用的c盘空间大小,还要显示其下目录和文件占用c盘空间的大小
-s:总计当前目录占用的c盘空间大小,不要列出显示其下子目录和文件占用的c盘空间大小
-c:显示几个目录或文件占用的c盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l:统计硬链接占用c盘空间的大小
-L:统计符号链接所指向的文件占用的c盘空间大小
详尽学习:Linuxdu命令|新手教程
(二)实用命令:1、du-sh只查当前目录
du-sh查询当前目录下所有子目录总大小
du-sh*|sort-nr:当前目录下所有文件的大小给列下来,根据从大到小的形式排序。
du-s*|sort-nr|head-10选出排在后面的10个。
du-s*|sort-nr|tail-5选出排在前面的5个。
du-lh--max-depth=1查看当前目录下一级子文件和子目录占用的c盘容量:
2、du-h查当前目录及子目录
du-h:显示当前目录下,所有文件夹的大小
du-ah:显示当前目录下,所有文件夹、所有文件的大小
du-ah|sort-rn|head-5:按文件从大到小排序查看当前目录及子目录文件,前5个文件
3、du-sxx:显示指定目录的大小
4、查看当前目录下及子目录文件个数
ls-l|grep"^-"|wc-l:只查看当前目录下的文件个数(不含子目录)
5、du--apparent-size:显示文件或目录自身大小,而不是它们占用的c盘空间大小。
文件或目录占用c盘空间的大小与它们自身大小有时侯并非完全一致;这些现象非linux所独有,windows里也是这么。我们看这个选项的帮助文档的解释:Theapparentsizeofafileisthenumberofbytesreportedby`wc–c`regularfiles,ormoregenerally,`ls–l–block-size=1`or`stat–format=%s`.Forexample,afilecontainingtheword`zoo`withnonewlinewould,ofcourse,haveanapparentsizeof3.Suchasmallfilemayrequireanywherefrom0to16kibormoreofdiskspace,dependingonthetypeandconfigurationofthefilesystemonwhichthefileresides.
这段话给出了文件或目录自身大小与占用c盘空间大小的区别。他下边列举了一个愈发夸张的反例,这儿就不把它写下来了。我们晓得了:wc或ls--block-size显示的是其自身大小,而du给出的则是占用的c盘空间的大小。
6、du-c:使用此选项时linux ftp,除了显示几个文件或目录各自占用c盘空间的大小,还统计它们的总和。
如图所示,加上-c选项后,du除了显示两个目录各自占用c盘空间的大小,还在最后一行统计它们的总和。
7、du-l:这个选项主要是针对硬链接。在统计目录占用c盘空间大小时,-l选项会把硬链接也统计进来。
帮助文档是这样解释的:Countthesizeofallfiles,eveniftheyhaveappearedalready(asahardlink)。
我们在download目录下构建一个硬链接,指向本目录下的一个文件。不使用-l选项时,du发觉硬链接指向本目录下的文件,于是手动忽视该链接文件,以免引起重复统计;使用-l选项,du才能把硬链接文件也统计进来。
8、du-L:这个选项主要是针对符号链接。它会把符号链接所指向的文件占用c盘空间的大小也统计进来。
帮助文档是这样解释的:Dereferencesymboliclinks(showthediskspaceusedbythefileordirectorythatthelinkpointstoinsteadofthespaceusedbythelink)。
我们在download目录下创建一个符号链接,指向本目录下的一个文件。我们看见里面图片中显示的操作结果,当使用-L选项时,du会把符号链接所指向的文件的大小也统计到目录里来。
另外我们看du-lh的结果,与du-h相同linux 磁盘空间,似乎没有统计出符号链接的大小;虽然并非这么。从实际操作来看百度网盘LINUX,符号链接本身虽然并不占用c盘空间,所以才出现上述情况。
最后,du命令在统计目录占用c盘空间时,默认不统计链接文件(无论是硬链接或是符号链接),所以要用-l和-L选项特地强调来;据悉,du命令默认不显示目录下文件占用c盘空间的信息,并且却默认显示其下子目录所占用c盘空间的信息。怪哉。
二、df使用(一)句型&常用选项:
df [选项]... [FILE]...
-a显示所有文件系统的c盘使用情况
-k显示单位
-h便捷人阅读方法显示
-i显示inode使用情况linux 磁盘空间,而不是默认块使用情况
-t按照指定文件系统类型作为条件输出
-x与-t条件相反
-T输出文件系统类型列
详尽学习:Linuxdf命令|新手教程
(二)常用命令:1、查看服务器c盘空间占用/挂载概况df-h
三、工作应用场景--占用空间大排查1、、逐级查找定位占用最大的目录
du-lh--max-depth=1/path
先在/path目录下找出最大的目录path1,之后再在path1下找出最大的目录,这样一级一级就可以找出占用空间最大的目录了
du-lh--max-depth=1/path/path1