Linux下shell编程之df/du用法详解及示例

一、df 命令详解及示例

df(disk free)命令用于显示Linux系统中文件系统的磁盘空间占用情况。它可以显示文件系统的总空间、已用空间、可用空间、已用百分比和挂载点等信息,是系统管理员和用户监控磁盘使用情况的重要工具。

基本用法
df [选项] [文件/目录...]

如果不指定任何文件或目录,df 命令将显示所有已挂载文件系统的磁盘空间使用情况。

常用选项
  • -h:以人类可读的格式显示输出(例如,使用KB、MB、GB等单位)。
  • -T:显示文件系统的类型。
  • -i:显示inode的使用情况。
  • --total:显示所有文件系统的总使用情况。
输出字段含义
  • Filesystem‌:文件系统的名称或设备。
  • Size‌:文件系统的总大小。
  • Used‌:已使用的空间。
  • Avail‌:可用的空间。
  • Use%‌:已使用空间的百分比。
  • Mounted on‌:挂载点。
示例

示例 1:显示所有文件系统的磁盘使用情况

df

输出示例(部分):

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       20511616 6244364  13154600  33% /
tmpfs             1023868       4   1023864   1% /dev/shm

示例 2:以人类可读的格式显示磁盘使用情况

df -h

输出示例(部分):

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   6.0G   13G  33% /
tmpfs           1004M  4.0K  1004M   1% /dev/shm

示例 3:显示文件系统的类型

df -T

输出示例(部分):

Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/sda1      ext4      20511616 6244364  13154600  33% /
tmpfs          tmpfs      1023868       4   1023864   1% /dev/shm

示例 4:显示inode的使用情况

df -i

输出示例(部分):

Filesystem       Inodes   IUsed    IFree IUse% Mounted on
/dev/sda1      13107200  328260 12778940    3% /
tmpfs            255967       1   255966    1% /dev/shm

示例 5:显示所有文件系统的总使用情况

df --total

输出示例:

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1       20511616 6244364  13154600  33% /
tmpfs             1023868       4   1023864   1% /dev/shm
total           21535484 6244368  14178464  31% -

二、du 命令详解及示例

du(disk usage)命令用于显示目录或文件的磁盘使用情况。它可以递归地计算指定目录的总大小,并显示每个子目录的大小。这对于了解文件系统中各个目录占用的磁盘空间非常有用。

基本用法
du [选项] [文件/目录...]

如果不指定任何文件或目录,du 命令将显示当前目录及其子目录的磁盘使用情况。

常用选项
  • -a:显示目录和文件的总大小,包括隐藏文件。
  • -h:以人类可读的格式显示输出(例如,使用KB、MB、GB等单位)。
  • -s:仅显示总计大小,不显示每个子目录的大小。
  • -c:最后显示一个总计行,显示所有指定文件或目录的总大小。
  • -d <深度>:指定递归的目录深度。例如,-d 1 将仅显示当前目录及其直接子目录的大小。
  • -L:跟随符号链接,计算链接指向的文件或目录的大小(注意:这可能会导致重复计算)。
  • --max-depth=<深度>:与-d选项类似,指定递归的目录深度。
  • --exclude=<模式>:排除与指定模式匹配的文件或目录。
输出字段含义
  • 大小‌:目录或文件的磁盘使用情况,以指定的单位显示(如KB、MB、GB等)。
  • 目录/文件名‌:目录或文件的名称。
示例

示例 1:显示当前目录及其子目录的磁盘使用情况

du

输出示例(部分):

4.0K    ./file1
8.0K    ./subdir1
12K     .

示例 2:以人类可读的格式显示当前目录及其子目录的磁盘使用情况

du -h

输出示例(部分):

4.0K    ./file1
8.0K    ./subdir1
12K     .

示例 3:仅显示当前目录的总大小

du -sh

输出示例:

12K     .

示例 4:显示当前目录及其直接子目录的磁盘使用情况(深度为1)

du -d 1

输出示例(部分):

4.0K    ./file1
8.0K    ./subdir1
12K     .

示例 5:排除特定模式的文件或目录

假设你想要排除所有以.log结尾的文件:

du --exclude='*.log'

输出将不包括任何以.log结尾的文件的大小。

示例 6:跟随符号链接计算大小

du -L

请注意,这可能会导致重复计算,因为符号链接可能会被解析为指向同一个文件或目录的多个链接。

三、dfdu命令结合使用

df命令显示文件系统的总体使用情况,而du(disk usage)命令则用于显示目录或文件的磁盘使用情况。

以下是如何使用这两个命令来获取特定目录的磁盘使用情况的步骤和示例:

  1. 使用df命令找到文件系统的总体使用情况‌:

    你可以使用df命令来找到包含你感兴趣目录的文件系统的总体使用情况。例如:

    df /path/to/your/directory

    但是,请注意,这个命令实际上会显示包含指定目录的文件系统的总体使用情况,而不是目录本身的磁盘使用情况。

  2. 使用du命令获取特定目录的磁盘使用情况‌:

    为了获取特定目录的磁盘使用情况,你应该使用du命令。例如:

    du -sh /path/to/your/directory

    这个命令将显示指定目录的总磁盘使用情况,以人类可读的格式(例如,KB、MB、GB)。

  3. 结合使用dfdu命令‌:

    如果你想要先找到包含特定目录的文件系统,然后再查看该目录的磁盘使用情况,你可以结合使用dfdu命令。首先,使用df命令找到文件系统的挂载点,然后使用du命令查看该挂载点下特定目录的磁盘使用情况。

    例如:

    # 找到包含特定目录的文件系统的挂载点
    df -h /path/to/your/directory
    
    # 假设挂载点是/mnt/data,现在查看该挂载点下特定目录的磁盘使用情况
    du -sh /mnt/data/your/directory
    

请注意,在上面的例子中,/path/to/your/directory应该替换为你实际想要检查的目录的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackiendsc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值