清明小长假来加班,总得干点啥吧,今天就说说du 和df的区别。

1.区别

du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有删除的。他计算的是当前他认为的所有文件大小的累加。

df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统中消失了,而是暂时消失了,当所有程序都不用时,才会根据操作系统的规则释放掉已经删除的文件,df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能看到已经删除的文件。

当文件系统也确定删除了该文件后,这时候du与df就一致了。

2.du详解

2.1命令格式

du [选项][文件]

2.2命令功能

显示每个文件和目录的磁盘使用空间。

2.3命令参数

-a或-all  显示目录中个别文件的大小。   
-b或-bytes  显示目录或文件大小时,以byte为单位。   
-c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 
-k或--kilobytes  以KB(1024bytes)为单位输出。
-m或--megabytes  以MB为单位输出。   
-s或--summarize  仅显示总计,只列出最后加总的值。
-h或--human-readable  以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem  以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。   
-S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。 
-X<文件>或--exclude-from=<文件>  在<文件>指定目录或文件。   
--exclude=<目录或文件>         略过指定的目录或文件。    
-D或--dereference-args   显示指定符号链接的源文件大小。   
-H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   
-l或--count-links   重复计算硬件链接的文件。 

2.4使用实例

1.du,显示目录或者文件所占空间,只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

[root@localhost test]# du
     ./test6
     ./test4
       ./scf/lib
       ./scf/service/deploy/product
       ./scf/service/deploy/info
      ./scf/service/deploy
      ./scf/service
       ./scf/doc
       ./scf/bin
      ./scf
       ./test3
    .

2.du,查看指定目录的所占空间

[root@localhost ~]$ du hadoop
hadoop/log/hive/kumufengchun
hadoop/log/hive
hadoop/log
hadoop

3.du,显示指定文件所占空间

[root@localhost ~]$ du test.sh
test.sh

4.du,显示多个文件所占空间

[root@localhost ~]$ du test.sh black.txt
test.sh
black.txt

5.du -s,只显示总和的大小

[root@localhost ~]$ du -s hadoop
hadoop
[root@localhost ~]# du -s /home/*
364 /home/kumufengchun
24 /home/qingyangwanxi
20 /home/dongxuewanqing
16 /home/qingwufeiyang

6.du -h,方便阅读的格式显示

[root@localhost ~]# du -h hadoop
20K hadoop/log/hive/kumufengchun
24K hadoop/log/hive
28K hadoop/log
32K hadoop

7.du -a,文件和目录都显示

[root@localhost ~]# du -ah hadoop
16K hadoop/log/hive/kumufengchun/hive.log
20K hadoop/log/hive/kumufengchun
24K hadoop/log/hive
28K hadoop/log
32K hadoop

8.du -c,显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

[root@localhost test]# du -c log30.tar.gz log31.tar.gz
log30.tar.gz
log31.tar.gz
总计

9.按照空间大小排序

[root@localhost test]# du|sort -nr|more
    .
     ./test6
     ./test4
      ./scf
      ./scf/service
      ./scf/service/deploy
       ./test3
       ./scf/service/deploy/product
       ./scf/service/deploy/info
       ./scf/lib
       ./scf/doc
       ./scf/bin

10.输出当前目录下各个子目录所使用的空间

[root@localhost test]# du -h  --max-depth=
608K ./test6
308K ./test4
32K ./scf
.0K ./test3
1.3M .

11.选项--exclude和--exclude-from可以让du在磁盘使用统计中排除部分文件

[root@localhost test]# du --exclude "*.txt" -a shell/
shell/ifs.sh
shell/TEST.TXT
shell/disklog.sh
shell/file.sh
shell/timing.log
shell/exit.sh
shell/.sh

3.df详解

linux中df命令是用来检查linux服务器的文件系统的磁盘占用空间情况。可以利用该命令来获取硬盘被占用了多少空间,母亲还剩下多少空间等信息

3.1命令格式

df [选项] [文件]

3.2命令功能

显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示

3.3命令参数

必要参数:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=,而不是1K=
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
--block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息

3.4使用实例

1.df显示磁盘使用情况

[root@CT1190 log]# df
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda7                      % /
/dev/sda9                 % /opt
/dev/sda8                       % /var
/dev/sda6                    % /usr
/dev/sda3                           % /boot
tmpfs                               % /dev/shm

说明:

linux中df命令的输出清单的第1列是代表文件系统对应的设备文件的路径名(一般是硬盘上的分区);第2列给出分区包含的数据块(1024字节)的数目;第3,4列分别表示已用的和可用的数据块数目。用户也许会感到奇怪的是,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。清单中Use% 列表示普通用户空间使用的百分比,即使这一数字达到100%,分区仍然留有系统管理员使用的空间。最后,Mounted on列表示文件系统的挂载点

2.df -i,以inode模式来显示磁盘使用情况

[root@CT1190 log]# df -i
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda7                     % /
/dev/sda9                    % /opt
/dev/sda8                     % /var
/dev/sda6                    % /usr
/dev/sda3                         % /boot
tmpfs                            % /dev/shm

3.df -T,列出文件系统的类型

[root@CT1190 log]# df -T
文件系统      类型     1K-块        已用     可用 已用% 挂载点
/dev/sda7     ext3             % /
/dev/sda9     ext3        % /opt
/dev/sda8     ext3              % /var
/dev/sda6     ext3           % /usr
/dev/sda3     ext3                  % /boot
tmpfs        tmpfs                  % /dev/shm

4.显示指定类型磁盘

[root@CT1190 log]# df -t ext3
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda7                      % /
/dev/sda9                 % /opt
/dev/sda8                       % /var
/dev/sda6                    % /usr
/dev/sda3                           % /boot

5.列出各文件系统的i节点使用情况

[root@CT1190 log]# df -ia
文件系统               Inode (I)已用 (I)可用 (I)已用% 挂载点
/dev/sda7                     % 
/proc                                         -  /proc
sysfs                                        -  /sys
devpts                                       -  /dev/pts
/dev/sda9                    % /opt
/dev/sda8                     % /var
/dev/sda6                    % /usr
/dev/sda3                         % /boot
tmpfs                            % /dev/shm
none                                         -  /proc/sys/fs/binfmt_misc

6.以更易读的方式显示目前磁盘空间和使用情况

[root@CT1190 log]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda7              19G  871M   18G   % /
/dev/sda9             195G   89G   96G  % /opt
/dev/sda8             .8G  557M  .0G  % /var
/dev/sda6              19G  .9G   17G  % /usr
/dev/sda3             965M   24M  892M   % /boot
tmpfs                  16G        16G   % /dev/shm
[root@CT1190 log]# df -H
文件系统               容量   已用  可用 已用% 挂载点
/dev/sda7               21G   913M    19G   % /
/dev/sda9              209G    96G   103G  % /opt
/dev/sda8              .1G   584M   .3G  % /var
/dev/sda6               21G   .1G    18G  % /usr
/ev/sda3              .1G    25M   936M   % /boot
tmpfs                   17G          17G   % /dev/shm
[root@CT1190 log]# df -lh
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda7              19G  871M   18G   % /
/dev/sda9             195G   89G   96G  % /opt
/dev/sda8             .8G  557M  .0G  % /var
/dev/sda6              19G  .9G   17G  % /usr
/dev/sda3             965M   24M  892M   % /boot
tmpfs                  16G        16G   % /dev/shm
[root@CT1190 log]# df -k
文件系统               1K-块        已用     可用 已用% 挂载点
/dev/sda7                      % /
/dev/sda9                  % /opt
/dev/sda8                       % /var
/dev/sda6                    % /usr
/dev/sda3                           % /boot
tmpfs                               % /dev/shm

说明:

-h更具目前磁盘空间和使用情况 以更易读的方式显示

-H根上面的-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换

-k以单位显示磁盘的使用情况

-l显示本地的分区的磁盘空间使用率,如果服务器nfs了远程服务器的磁盘,那么在df上加上-l后系统显示的是过滤nsf驱动器后的结果

-i显示inode的使用情况。linux采用了类似指针的方式管理磁盘空间影射.这也是一个比较关键应用

原文连接 https://blog.csdn.net/wisgood/article/details/17316663

shell学习(9)- du和df区别及详解的更多相关文章

  1. WScript.Shell对象的 run()和exec()函数使用详解

    WScript.Shell对象的 run()和exec()函数使用详解 http://blog.sina.com.cn/s/blog_6e14a2050102v47g.html   vbScript ...

  2. Windows8 各种版本区别对比详解

    微软的 Windows8 操作系统提供了4个不同的版本,分别是 Windows RT.Windows 8 标准版.Windows 8 Pro 专业版 以及 Windows 8 Enterprise 企 ...

  3. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  4. ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解

    原文 ASP.NET MVC 5 学习教程:Details 和 Delete 方法详解 在教程的这一部分,我们将研究一下自动生成的 Details 和Delete 方法. Details 方法 打开M ...

  5. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  6. 基于OpenCL的深度学习工具:AMD MLP及其使用详解

    基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...

  7. (转)live555学习笔记10-h264 RTP传输详解(2)

    参考: 1,live555学习笔记10-h264 RTP传输详解(2) http://blog.csdn.net/niu_gao/article/details/6936108 2,H264 sps ...

  8. java中4种修饰符访问权限的区别及详解全过程

    java中4种修饰符访问权限的区别及详解全过程 http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html java中4中修饰符分别为 ...

  9. Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)

    Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j) 博客分类: Java综合   第一.Logger.getLogger()和Log ...

随机推荐

  1. c# CODE REVIEW (13-11 TO 14-01)

    一. 松耦合

  2. 2014暑假ACM训练总结

    2014暑假ACM训练总结报告 匆匆之中,一个暑假又过去了,在学校训练的这段日子真的是感觉日子过得好快啊! 时光如箭,日月如梭! 匆忙的学习之中一个暑假就这样结束了,现在就来写一些总结吧,供自己以后阅 ...

  3. BZOJ 1370 [Baltic2003]Gang团伙:并查集【虚点】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1370 题意: 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: (1)我 ...

  4. LoadRunner监控图表与配置(一) 监控与图表

    1.“Monitoer”菜单-“Online Graphs”-“Open a new graph”打开监视图表列表. 实际上这些监视图表已经在Available Graphs中显示了出来. 2.常用监 ...

  5. 从TS流到PAT和PMT

    转自:https://blog.csdn.net/rongdeguoqian/article/details/18214627 一 从TS流开始 最近开始学习数字电视机顶盒的开发,从MPEG-2到DV ...

  6. leetcode 110 Balanced Binary Tree(DFS)

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  7. PS 滤镜— —球面化效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  8. ACM学习历程——HDU5202 Rikka with string(dfs,回文字符串)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  9. codevs 3049 舞蹈家怀特先生

    题目描述 Description 怀特先生是一个大胖子.他很喜欢玩跳舞机(Dance Dance Revolution, DDR),甚至希望有一天人家会脚踏“舞蹈家怀特先生”.可惜现在他的动作根本不能 ...

  10. BZOJ1503:[NOI2004]郁闷的出纳员

    浅谈\(splay\):https://www.cnblogs.com/AKMer/p/9979592.html 浅谈\(fhq\)_\(treap\):https://www.cnblogs.com ...