du -ah --max-depth=1 这个是我想要的结果 a显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小可是因为用了--max-depth选项,表示显示目录下全部的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。html
du命令用来查看目录或文件所占用磁盘空间的大小。经常使用选项组合为:du -shlinux
1、du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory arguments). with no arguments,`du` reports the disk space for the current directory。
很明显,与df不一样,它用来查看文件或目录所占用的磁盘空间的大小。
2、du经常使用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬连接占用磁盘空间的大小
-L:统计符号连接所指向的文件占用的磁盘空间大小
1、du -h:这个就很少说了。
2、du -a:使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。
能够看出,默认状况下du只显示download目录占用磁盘空间的大小,而使用-a选项后,它不只显示了目录(最后一行),并且显示了目录下各个文件占用磁盘空间的大小。
3、du -s:使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
默认状况下,du不显示目录下文件占用磁盘空间的信息,但它会显示其下子目录占用磁盘空间的信息;而使用-s选项之后,只显示xx目录占用磁盘空间的大小。
4、du --apparent-size:显示文件或目录自身大小,而不是它们占用的磁盘空间大小。文件或目录占用磁盘空间的大小与它们自身大小有时候并不是彻底一致;这种现象非linux所独有,windows里也是如此。咱们看这个选项的帮助文档的解释:The apparent size of a file is the number of bytes reported by `wc –c` regular files ,or more generally, `ls –l –block-size=1` or `stat –format=%s`.For example, a file containing the word `zoo` with no newline would, of course, have an apparent size of 3. Such a small file may require anywhere from 0 to 16 kib or more of disk space, depending on the type and configuration of the file system on which the file resides.
这段话给出了文件或目录自身大小与占用磁盘空间大小的区别。他下面举出了一个更加夸张的例子,这里就不把它写出来了。咱们知道了:wc或ls --block-size显示的是其自身大小,而du给出的则是占用的磁盘空间的大小。
5、du -c:使用此选项时,不只显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和。
如图所示,加上-c选项后,du不只显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和。
6、du -l:这个选项主要是针对硬连接。在统计目录占用磁盘空间大小时,-l选项会把硬连接也统计进来。帮助文档是这样解释的:Count the size of all files,even if they have appeared already(as a hard link)。
咱们在download目录下创建一个硬连接,指向本目录下的一个文件。不使用-l选项时,du发现硬连接指向本目录下的文件,因而自动忽略该连接文件,以避免形成重复统计;使用-l选项,du才会把硬连接文件也统计进来。
7、du -L:这个选项主要是针对符号连接。它会把符号连接所指向的文件占用磁盘空间的大小也统计进来。帮助文档是这样解释的:Dereference symbolic links(show the disk space used by the file or directory that the link points to instead of the space used by the link)。windows
咱们在download目录下建立一个符号连接,指向本目录下的一个文件。咱们看到上面图片中显示的操做结果,当使用-L选项时,du会把符号连接所指向的文件的大小也统计到目录里来。
另外咱们看du -lh的结果,与du -h相同,好像没有统计出符号连接的大小;其实并不是如此。从实际操做来看,符号连接自己彷佛并不占用磁盘空间,因此才出现上述状况。
最后,du命令在统计目录占用磁盘空间时,默认不统计连接文件(不管是硬连接或是符号连接),因此要用-l和-L选项特意指出来;此外,du命令默认不显示目录下文件占用磁盘空间的信息,可是却默认显示其下子目录所占用磁盘空间的信息。怪哉。
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量 app
du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。ide