`
onedaykoo
  • 浏览: 25299 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

du与df命令

    博客分类:
  • unix
 
阅读更多
du和df命令都被用于获得文件系统大小的信息:df用于报告文件系统的总块数及剩余块数,du -s /用于报告文件系统使用的块数。但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的。

du和df命令都被用于获得文件系统大小的信息:df用于报告文件系统的总块数及剩余块数,du -s /用于报告文件系统使用的块数。但是,我们可以发现从df命令算出的文件系统使用块数的值与通过du命令得出的值是不一致的。如下例:
# du -s /tmp 返回如下值:
12920 /tmp
而 df /tmp返回如下值:
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/hd3 57344 42208 26% 391 4% /tmp
从上面的值我们可以算出 -  = : 57344 - 42208 = 15136. 而15136大于12920。该值差异的存在是由于du与df命令实施上的不同: du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。
du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。例如,一个frag=4096 并且 nbpi=4096的空的大小为4MB的日志文件系统中Meta Data的分配情况如下:
1 4k block for the LVM
2 4k super blocks
2 4k blocks for disk maps
2 4k blocks for inode maps
2 4k blocks for .indirect
32 4k blocks for inodes
-------------------------
41 4k blocks for meta data on an empty 4MB file system
对于AIX 4.X版本:
执行 du /foo返回的结果如下:
8 /foo/lost+found
16 /foo
要使du命令输出的结果与df命令输出的结果匹配,我们必须要加上Meta Data。首先,将41个4k的块转换为以512字节为单位的值:
41 * 8 = 328
328(meta data) + 16(from du) = 344
所以有344个以512字节为单位的块分配给了这个空的文件系统。
而使用 df /foo命令我们可以得到下面的结果:
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
/dev/lv01 8192 7848 5% 16 2% /foo
从中我们可以得到该文件系统使用的块数:8192(total blocks) - 7848(free blocks) = 344。该值与上面得出的值一致。
上面的换算方法对于空的文件系统很容易实现,但是对于非空的文件系统,由于Meta Data中文件间接块的大小不定,因此较难实现。所以我们不需要查看du 与 df返回的值的匹配关系,而只需要了解du -s命令返回的值反映了分配给文件及目录的磁盘块数,而df命令则反映了文件系统的实际分配情况。df命令反映的实际情况包含了用户数据(文件及目录)和 Meta Data。
另一个表现出du与df命令不同之处的例子如下:
如果用户删除了一个正在运行的应用所打开的某个目录下的文件,则du命令返回的值显示出减去了该文件后的目录的大小。但df命令并不显示减去该文件后的大小。直到该运行的应用关闭了这个打开的文件,df返回的值才显示出减去了该文件后的文件系统的使用情况。
分享到:
评论

相关推荐

    CentOS中du和df 的区别

    #### du与df命令的主要区别 - **计算方式不同**:`df`命令通过查看文件系统的磁盘块分配图来获取总的可用空间和已使用空间,其中包括了文件系统元数据(如i节点、磁盘分配图、间接块、超级块等)所占用的空间;而`...

    df_和_du_命令详解.docx

    `df` 和 `du` 是在类 Unix 系统(如 Linux 和 macOS)中常用的命令行工具,用于监控文件系统的磁盘空间使用情况。这两个命令对于系统管理员来说至关重要,因为它们提供了关于存储资源的关键信息。 **df 命令详解:*...

    磁盘满了,为啥du却显示还有很大空间

    如果我们删除了一个正在写入的日志文件,du 命令的结果会把日志大小减去,而 df 命令的结果不会减去该日志的大小(文件句柄还在被使用)。 结语 磁盘空间管理是 Linux 系统中一个非常重要的主题,我们需要了解 du...

    linux-du-df.rar_linux du

    在Linux操作系统中,`du`和`df`是两个非常重要的命令行工具,它们用于监控文件系统的磁盘使用情况。然而,在实际使用中,有时可能会遇到`du`和`df`显示的硬盘空间使用量不一致的情况。这通常是由于它们统计磁盘空间...

    Linux下df与du两个命令的差别?

    一、df显示文件系统的使用情况,与du比?,是更全盘化。  经常使用的是 df -T,显示文件系统的使用情况并显示文件系统的类型。  举比例如以下:  [root@localhost ~]# df -T  Filesystem Type 1K-blocks ...

    aix常见问题汇总

    #### 八、du 与 df 命令的不同 `du` 和 `df` 命令都是用来检查文件系统空间使用的,但它们的功能有所不同: - `du`(disk usage):显示目录或文件的磁盘使用情况,可以帮助用户了解单个文件或目录占用的空间。 - ...

    Linux基础课件查看磁盘容量df命令共9页.pdf.zi

    除了df命令,还有另一个与之相关的命令`du`,用于查看目录或文件占用的空间大小。du命令可以帮助你找出哪些文件或目录占用了大量空间,从而进行清理或优化。 在实际操作中,可能需要结合这两个命令一起使用,例如,...

    linux查看目录大小及硬盘大小.docx

    Linux 系统提供了多种命令来查看目录大小及硬盘大小,其中最常用的命令是 du 和 df 命令。 1. du 命令 du 命令是用于查看目录大小的命令。它可以显示指定目录或文件的磁盘使用情况。du 命令的基本语法为:du ...

    Linux磁盘管理之df命令详细介绍和使用实例.docx

    Linux磁盘管理是系统管理员日常工作中不可或缺的一部分,而`df`命令则是用于检查Linux系统中文件系统的磁盘空间使用情况的工具。这个命令能够提供关于挂载在系统上的各个分区的详细信息,包括已用空间、可用空间以及...

    Linux 命令每天必学(34)之du命令

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. du /bin和du -s /bin有什么区别呢? -s 就是summary, 显示该目录占用空间的...

    du命令 查看空间

    但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。 语法格式:du [参数] [文件] 常用参数: -a 显示目录中所有文件大小 -k 以KB为单位显示文件大小 -m 以MB为单位...

    一天一个shell命令 linux好管家-磁盘-du命令详解

    du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。 语法 du [选项][文件] 选项 -a或-all 显示目录中个别文件的大小。 -b或-bytes 显示...

    Linux操作命令九.doc

    本文将详细介绍 Linux 操作系统中六个重要命令:comm 命令、diff 命令、patch 命令、df 命令、du 命令和 time 命令。这些命令都是 Linux 系统中不可或缺的一部分,掌握这些命令对日常的系统维护和管理具有重要意义。...

    Linux下查看指定文件夹和文件的大小.docx

    通过使用 df 命令、du 命令和 ls 命令,可以轻松地获取文件夹和文件的大小信息。 一、df 命令 df 命令用来查看目前所有文件系统的可用空间及使用情况。使用 df 命令可以查看一级文件夹大小、使用比例、档案系统...

    Linux运维-操作系统 教程 从入门到精通101课-46-46文件系统命令-df分区du大小.mp4

    Linux运维-操作系统 教程 从入门到精通101课-46-46文件系统命令-df分区du大小.mp4

    Shell的18条常用命令整理

    du 命令用于显示目前的目录所占用的磁盘空间,df 命令用于显示目前磁盘剩余空间。 * du 命令不加任何参数,那么返回的是整个磁盘的使用情况。 * du -hs 指定目录 查看指定目录的总大小。 * du -hs ./* 查看当前目录...

    linux常用命令源码(ls,cp,chmod,df等一百多个命令)

    linux下大部分常用命令源码,偶正要开始学习-_- base64.c basename.c c99-to-c89.diff cat.c chcon.c chgrp.c chmod.c chown.c chown-core.c chown-core.h chroot.c cksum.c comm.c copy.c cp.c cp-hash.c csplit.c ...

    Linux常用命令英文全称与中文解释

    Linux 常用命令英文全称与中文解释 Linux 操作系统是一个强大且功能丰富的系统,它提供了许多实用的命令来帮助用户更好地管理和使用系统。了解这些命令的英文全称和中文解释对用户使用 Linux 系统非常有帮助。本文...

    ubuntu查看文件大小

    通过使用 Linux 命令 df 和 du,可以轻松地查看文件的属性,包括文件大小。 df 命令可以查看文件系统的大小、使用率、可用空间、挂载点等信息。但是,df 命令只能查看一级文件夹的大小和使用率,对文件却无能为力。...

Global site tag (gtag.js) - Google Analytics