LINUX中的du命令

在LINUX上工作时,可能会出现需要传输一组文件或整个目录的情况。在这种情况下,您可能想知道特定目录或文件集消耗的磁盘空间。在处理LINUX时,有一个命令行实用程序也可以使用 命令,该命令估计并显示 磁盘空间 被文件使用。

null

简单地说 命令行实用程序帮助您找出一组文件或目录的磁盘使用情况。

下面是du命令的语法:

//syntax of du command

du [OPTION]... [FILE]...
       or
du [OPTION]... --files0-from=F

哪里 选项 指与du命令和 文件 指你想知道磁盘空间占用情况的文件名。

使用du命令

假设有两个文件 kt。txt pt。txt 如果你想知道这些文件的磁盘使用情况,那么你可以简单地使用 命令,并将文件名指定为:

//using du command

$du kt.txt pt.txt
8       kt.txt
4       pt.txt

/* the first column 
displayed the file's
disk usage */

如上图所示 显示相应文件使用的磁盘空间。

现在,显示的值实际上是第一个可用值的单位 大小 从…起 ––块大小 ,以及 大块头 , 块大小 块状大小 环境变量,如果不是这种格式,则单位默认为1024字节(如果设置了POSIXLY_CORRECT,则为512字节)。

不要对上面的段落感到困惑。我们可以简单地使用 -h 选项强制du以人类可读的格式生成输出。

du命令的选项

  • -a、 –所有选项: 此选项为所有文件(而不仅仅是目录)生成计数作为输出。
  • –外观尺寸选项: 这会打印文件的表观大小,而不是磁盘使用量,由于文件中存在漏洞(稀疏)、内部碎片和间接块,磁盘使用量可能会更大,但实际上表观大小较小。
  • -c、 –总选项: 这显示了一个总数。
  • -B、 ––块大小=大小选项: 此选项会使大小按大小缩放,如 -BM 以兆字节为单位打印大小。
  • -b、 –字节选项: 这个选项相当于 ––表观尺寸––块尺寸=1 .
  • -D、 –取消引用参数选项: 此选项仅用于取消引用命令行上列出的符号链接。
  • -H选项: 此选项等同于上述选项 -D 选项
  • –-files0 from=F选项: 这用于总结的磁盘使用情况 努尔- 文件F中指定的终止文件名,如果文件F为“-”,则从标准输入中读取名称。
  • -h、 –人类可读选项: 这将以人类可读的格式打印尺寸 在舍入值中使用缩写,如 1K 这是du最常用的选项。
  • –si选项: 这与 -h 选项,但使用1000而不是1024的幂。
  • -k选项: 相当于 -块大小=1K .
  • -l、 –计数链接选项: 如果文件不完整,则此计数会增加很多倍 硬链接 .
  • -m选项: 这相当于 ––块大小=1M .
  • -五十、 –取消引用选项: 此选项取消对所有符号链接的引用。
  • -P、 –无解引用选项: 此选项告诉du不要遵循默认设置的任何符号链接。
  • -0,–空选项: 每个输出行的结尾都是 0字节 而不是一条新线。
  • -S、 –单独的目录选项: 这会导致输出不包括 子目录 .
  • -s、 –总结选项: 此选项将允许仅显示每个参数的总计。
  • -x、 –一个文件系统选项: 这将导致du跳过不同文件系统上的目录。
  • -十、 –-exclude from=文件选项: 排除与文件中给定的任何模式匹配的文件。
  • –-exclude=模式选项: 它将排除符合模式的文件。
  • -d、 –最大深度=N选项: 仅当目录(或文件,带–all)低于命令行参数N级或更少时,才打印目录(或文件,带–all)的总计;–最大深度=0与–汇总相同。
  • –时间选项: 这将显示最后一次修改目录或其任何子目录中任何文件的时间。
  • –-time=WORD选项: 这将时间显示为文字,而不是修改时间: 时间、访问、使用、ctime 地位 .
  • ––时间样式=样式选项: 这显示了使用样式的时间: 全iso,长iso,iso, +格式 (格式的解释与日期的格式类似)。
  • –帮助选项: 这将显示一条帮助消息并退出。
  • -版本选项: 这将显示版本信息并退出。

使用du命令的示例

1.使用-h选项: 如上所述,-h选项用于以人类可读的格式生成输出。

//using -h with du

$du -h kt.txt pt.txt
8.0K    kt.txt
4.0K    pt.txt

/*now the output
is in human readable
format i.e in
Kilobytes */

2.使用du显示目录的磁盘使用情况: 现在,如果你要传递一个目录名 卡尔蒂克 作为du的参数,它将显示输入目录的磁盘使用信息 卡尔蒂克 及其子目录(如果有)。

/*using du to display disk usage 
of a directory and its
sub-directories */

$du kartik
4       kartik/thakral
24      kartik

在目录的磁盘使用信息上方 卡尔蒂克 及其子目录 塔克拉尔 显示。

3.使用-a选项: 现在,如上所示,只有目录的磁盘使用信息 卡尔蒂克 及其子目录 塔克拉尔 但如果您还想知道目录下所有文件的磁盘使用信息,该怎么办 卡尔蒂克 .为此,请使用 -a 选项

//using -a with du

$du -a kartik
8       kartik/kt.txt
4       kartik/pt.txt
4       kartik/pranjal.png
4       kartik/thakral.png
4       kartik/thakral
24      kartik

/*so with -a option used
all the files (under directory
kartik) disk usage info is
displayed along with the 
thakral sub-directory */

4.使用-c选项: 此选项显示总计,如图所示。

//using -c with du

$du -c -h kt.txt pt.txt
8.0K    kt.txt
4.0K    pt.txt
12.0K   total

/* at the end
total is displayed 
for the disk usage */

5.使用–-time选项: 此选项用于显示du输出中的上次修改时间。

//using --time with du

$du --time kt.txt
4       2017-11-18 16:00       kt.txt

/*so the last
modification date and
time gets displayed
when --time 
option is used */

6.使用–-exclude=PATTERN选项: 在上面的一个例子中,所有与磁盘使用相关的文件都显示在目录中 卡尔蒂克 .现在,假设你想知道。仅限txt文件,不包括。png文件,在这种情况下排除 .png 你可以使用这个选项。

//using --exclude=PATTERN with du

$du --exclude=*.png -a kartik
8       kartik/kt.txt
4       kartik/pt.txt
4       kartik/thakral
24      kartik

/*so, in this case
.png files info are
excluded from the output */

7.使用–-max depth=N选项: 现在,这个选项允许您将du的输出限制在目录的特定深度。 假设您有一个名为 朋友 下面有子目录 朋友/大学 朋友/学校 在子目录college下还有一个子目录 朋友/大学/再见 然后你可以使用 –最大深度=N 本例中的选项为:

//using --max-depth=N with du

$du --max-depth=0 FRIENDS
24       FRIENDS


/* in this case you 
restricted du output
only to top=level
directory */

现在,对于大学和学校的子目录,您可以使用:

$du --max-depth=1 FRIENDS
16      FRIENDS/college
8       FRIENDS/school
24      FRIENDS

现在,对于朋友/大学/告别,你可以使用 –最大深度=2 作为:

$du --max-depth=2 FRIENDS
4       FRIENDS/college/farewell
16      FRIENDS/college
8       FRIENDS/school
24      FRIENDS

/*so this is how N
in --max-depth=N 
is used for levels */

8.使用–-files0 from=F选项: 如上所述,这用于总结文件F中指定的以NUL结尾的文件名的磁盘使用情况,如果文件F为“-”,则从标准输入中读取名称。 让我们使用此选项从STDIN获取输入:

//using --files0from=F with du

$pwd
/home/kartik

$ls
kt.txt pt.txt thakral

/*now use this option for 
taking input from
STDIN */

$du --files0-from=-
kt.txt8 kt.txt
pt.txt4 pt.txt

/* in this case after 
giving kt.txt as a input
from STDIN there is need to
press Ctrl+D twice then the
output is shown and same for
pt.txt or any other file name
given from STDIN */

du命令的应用

  • 当文件从一台计算机传输到另一台计算机时,它可以用来找出特定目录占用的磁盘空间。
  • 命令可以与 过滤器 A. 滤器 通常是一个以有意义的方式转换数据的专门程序。
  • 还有其他一些方式,比如 df 命令来查找磁盘使用情况,但它们都缺少 能够显示单个目录和文件的磁盘使用情况。
  • 它还可以用来快速找出目录中存在的子目录的数量。

将du与过滤器一起使用的示例

让我们举一个简单的例子,将du与sort命令一起使用,这样du生成的输出将按照文件大小的递增顺序进行排序。


$du -a kartik
8       kartik/kt.txt
4       kartik/pt.txt
4       kartik/pranjal.png
4       kartik/thakral.png
4       kartik/thakral
24      kartik

/*now using du to produce
sorted output */

$du -a kartik | sort -n
4       kartik/pt.txt
4       kartik/pranjal.png
4       kartik/thakral.png
4       kartik/thakral
8       kartik/kt.txt
24      kartik

/* now the output displayed
is sorted according to the size */

这个 分类 命令和 -n 使用的选项会导致以数字顺序列出输出,并首先显示最小大小的文件。 通过这种方式,可以使用du根据大小排列输出。

就这些 命令

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享