一、du 命令 du [选项][文件] du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
1、du的功能: 很明显,与df不同,它用来查看文件或目录所占用的磁盘空间的大小。
2、du常用的选项: -h:以人类可读的方式显示 -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小 -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小 -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和 --apparent-size:显示目录或文件自身的大小 -l :统计硬链接占用磁盘空间的大小 -L:统计符号链接所指向的文件占用的磁盘空间大小
3、示例 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)
8、查看目录下所有文件的大小并按照大小排序
du -sh * | sort -rh
二、sort 命令 sort -n -k2 -r
其中:-n代表:以数字排序,k2代表:按第二列的值排序,r代表:逆序
du
统计当前目录下所有文件夹大小,以kb显示
[root@i logback]# du
88 ./202206
56 ./202207
88 ./log/202206
56 ./log/202207
84 ./log/202205
96 ./log/202112
88 ./log/202204
88 ./log/202201
96 ./log/202203
68 ./log/202202
668 ./log
820 .
1
2
3
4
5
6
7
8
9
10
11
12
13
2.du -h
以人类能看明白的方式显示大小
[root@i logback]# du -h
88K ./202206
56K ./202207
88K ./log/202206
56K ./log/202207
84K ./log/202205
96K ./log/202112
88K ./log/202204
88K ./log/202201
96K ./log/202203
68K ./log/202202
668K ./log
820K .
1
2
3
4
5
6
7
8
9
10
11
12
13
3.du -sh
只显示当前目录的大小(包括下级目录)
[root@i logback]# du -sh
820K .
1
2
4.du -sh *
显示当前目录下的所有文件级文件夹(包括子文件夹)大小
[root@i logback]# du -sh *
4.0K 11.log
88K 202206
56K 202207
668K log
1
2
3
4
5
5.du -sh --time
显示更新时间
[root@i logback]# du -sh --time
820K 2022-07-19 16:47 .
1
2
6.du -sh * | sort -rh
显示当前目录下的所有文件级文件夹(包括子文件夹)大小,并排序
[root@i logback]# du -sh * | sort -rh
668K log
88K 202206
56K 202207
4.0K 11.log
1
2
3
4
5
7.du -sh * --time | sort -rh
显示当前目录下的所有文件级文件夹(包括子文件夹)大小,带有更新时间,并排序
[root@i logback]# du -sh * --time | sort -rh
668K 2022-07-19 15:24 log
88K 2022-07-19 15:22 202206
56K 2022-07-19 15:23 202207
4.0K 2022-07-19 16:47 11.log
————————————————