Linux中du命令参数的用法

Linux中du命令参数的用法,第1张

Linux中du命令参数的用法

du是Linux下系统命令,统计目录(或文件)所占磁盘空间的大小。那么du有什么参数呢?这些参数的用法是什么,下面一起来看看吧!

Du(Disk Usage)命令功能说明:统计目录(或文件)所占磁盘空间的大小。

语法:du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]

常用参数:

-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。

-b或-bytes 显示目录或文件大小时,以byte为单位。

-c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或–dereference-args 显示指定符号连接的源文件大小。

-h或–human-readable 以K,M,G为单位,提高信息的可读性。

-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。

-k或–kilobytes 以1024 bytes为单位。

-l或–count-links 重复计算硬件连接的文件。

-L<符号连接>或–dereference<符号连接>显示选项中所指定符号连接的源文件大小。

-m或–megabytes 以1MB为单位。

-s或–summarize 仅显示总计,即当前目录的大小。

-S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。

-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或–exclude-from=<文件>在<文件>指定目录或文件。

–exclude=<目录或文件>略过指定的目录或文件。

–max-depth=<目录层数>超过指定层数的目录后,予以忽略。

–help 显示帮助。

–version 显示版本信息。

Linux中的du命令使用示例:

1>要显示一个目录树及其每个子树的磁盘使用情况

du /home/linux

这在/home/linux目录及其每个子目录中显示了磁盘块数。

2>要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况

du -k /home/linux

这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。

3>以MB为单位显示一个目录树及其每个子树的.磁盘使用情况

du -m /home/linux

这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。

4>以GB为单位显示一个目录树及其每个子树的磁盘使用情况

du -g /home/linux

这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。

5>查看当前目录下所有目录以及子目录的大小:

du -h .

“.”代表当前目录下。也可以换成一个明确的路径

-h表示用K、M、G的人性化形式显示

6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:

du -sh user

-s表示总结的意思,即只列出一个总结的值

du -h –max-depth=0 user

–max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。

7>列出user目录及其子目录下所有目录和文件的大小:

du -ah user

-a表示包括目录和文件

8>列出当前目录中的目录名不包括xyz字符串的目录的大小:

du -h –exclude=’*xyz*’

9>想在一个屏幕下列出更多的关于user目录及子目录大小的信息:

du -0h user

-0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。

10>只显示一个目录树的全部磁盘使用情况

du -s /home/linux

一个比较经典的问题:

如果线上机器的磁盘占用率超级高,怎么办?

这时候优先想到的肯定是,定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉。

那么,问题来了,如何定位到占用磁盘空间最大的文件?

一个办法是执行如下命令:

里面涉及三个指令:du、sort、more

既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记。

首先是du

作用:用来查看文件所占用的磁盘情况。

格式:du [选项] [文件]

可用选项(如下为du --help展示的内容):

*** 作示例:

对几个比较常用的选项单独拿出来,在机器上实际 *** 作,效果如下:

首先,当前目录如下:

du:

其实吧,从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量,所以,感觉一般情况下-c这个选项并没有什么用。

du -s:只计算总量

不过,注意:-s与-a不能同时存在,会报错的。

sort

作用:对输出的结果进行排序

可用选项:

-r:代表逆序排序

-n:按照字符串数值排序

-g:按照常规数值排序

-f:忽略字母大小写

实测效果:

首先是测试文件的原始状态:

测试一:sort

可以发现:

空行排在了第一位;

不管数字有多大,字符串都会排在数字的后面;

数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);

more

作用:用于一页一页地展示文件内容。

几个常用 *** 作:

空格:翻到下一页

b:翻到上一页

/:启动字符串搜索(类似于vim)

此外:

more +n XXX:从XXX文件的第n行开始展示

more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行

cat

作用:一次性的展示所有文件内容

cat有两个比较有用的选项:

-n:输出所有行号

-b:只对非空行输出行号

此外,

cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ

并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more

less:

作用:对文件或者输出内容进行分页展示,并且less可以用于打开多个文件

常用 *** 作:

j:向上滚动一行

k:向下滚动一行(类似于vim)

g:跳到第一行

G:跳到最后一行

b:向上翻一页

空格:翻页

n%:跳转到整个文件的n%处

:e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去

/:进行字符串搜索

v:启动编辑

常用选项:

-N:在每一行前面都显示行号

-m:显示读取文件的百分比

-M:显示读取文件的百分比、行号和总行数

注意:

其他两个比较简单的指令:

head:显示一个文件的前N行

用法:head -n 行数 文件名

tail:显示一个文件的最后N行

用法:tail -n 行数 文件名

不过,使用tai的时候,因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:

tail -f 文件名

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。

du:查询档案或目录的磁盘使用空间

a:显示全部目录和其次目录下的每个档案所占的磁盘空间

b:大小用bytes来表示 (默认值为k bytes)

c:最后再加上总计 (默认值)

s:只显示各档案大小的总合

x:只计算同属同一个档案系统的档案

L:计算所有的档案大小

常用命令:du –a

*** 作详解

引用

指令 du 能以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小。例如:

# du -h /etc

104K /etc/defaults

6.0K /etc/X11

8.0K /etc/bluetooth

4.0K /etc/gnats

52K /etc/isdn

388K /etc/mail

68K /etc/mtree

2.0K /etc/ntp

38K /etc/pam.d

44K /etc/periodic/daily

6.0K /etc/periodic/monthly

42K /etc/periodic/security

16K /etc/periodic/weekly

110K /etc/periodic

6.0K /etc/ppp

318K /etc/rc.d

2.0K /etc/skel

130K /etc/ssh

10K /etc/ssl

1.7M /etc

我们目样使用 -h 参数来显示 human-readable 的格式。在应用时,我们可以使用 du 这个指令来查看哪个目录占用最多的空间。不过,du 的输出结果通常很长,我们可以加上 -s 参数来省略指定目录下的子目录,而只显示该目录的总合即可:

# du -sh /etc

1.7M /etc

在查看目录的使用情形时,我们可以将输出结果导到 sort 指令进行排序,以了解哪个档案用了最多的空间:

# du /etc | sort -nr | more

1746 /etc

388 /etc/mail

318 /etc/rc.d

130 /etc/ssh

110 /etc/periodic

104 /etc/defaults

68 /etc/mtree

52 /etc/isdn

44 /etc/periodic/daily

42 /etc/periodic/security

38 /etc/pam.d

16 /etc/periodic/weekly

10 /etc/ssl

8 /etc/bluetooth

6 /etc/ppp

6 /etc/periodic/monthly

6 /etc/X11

4 /etc/gnats

2 /etc/skel

2 /etc/ntp

sort 的参数 -nr 表示要以数字排序法进行反向排序,因为我们要对目录大小做排序,所以不可以使用 human-readable 的大小输出,不然目录大小中会有 K、M 等字样,会造成排序不正确。

现在明了了Linux du命令和Linux df命令的不同之处了吗


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7262997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存