怎样在 Linux / Unix 中获取磁盘空间

有时您可能需要在 Linux / Unix 中检查磁盘使用情况或获取磁盘空间,以查找 Linux 中哪个文件使用了更多空间。 以下是怎样在 Linux 中获取磁盘空间。 您可以使用它来检查 Ubuntu、CentOS、Redhat、Debian、 Fedora 和其他系统。

怎样在 Linux / Unix 中获取磁盘空间

您可以使用 du(磁盘使用情况)或 df(磁盘空闲)命令检查 Linux/Unix 中的磁盘空间。 两者都支持各种选项来查找磁盘使用情况并以不同方式显示磁盘使用情况。

这是 du 和 df 命令的语法

du [options] [locations/devices]
df [options] [locations/devices]

我们将看看使用 du 和 df 命令的不同方式

奖励阅读:怎样在 Linux 中安装 Zip 和解压缩

怎样从终端检查磁盘空间

以下是怎样从终端检查磁盘使用情况。

$ du

上面的命令将列出当前工作目录 (pwd) 中所有文件和文件夹占用的空间。 由于文件系统中可以有很多文件和目录,我们将 du 命令的输出传递给 head 命令并仅选择前 10 个结果。 您可以根据您的要求更改它

$ du | head -n 10

这是一个示例输出

[email protected]:~$ du | head -n 10
4       ./.qws/share/data/Ofi Labs/PhantomJS
8       ./.qws/share/data/Ofi Labs
12      ./.qws/share/data
16      ./.qws/share
20      ./.qws
4       ./.gnupg/private-keys-v1.d
8       ./.gnupg
52      ./conf/.git/hooks
8       ./conf/.git/info
4       ./conf/.git/branches

如果您不希望 Linux/Unix 显示文件夹中子文件夹和文件的磁盘使用情况,那么您可以使用 max-depth 选项。 以下命令将仅提供位于当前目录中的文件和文件夹的磁盘使用情况。 它不会递归计算文件夹中所有子文件夹和文件的磁盘使用情况。

$ du --max-depth=1

这是示例输出

[email protected]:~$ du --max-depth=1
20      ./.qws
8       ./.gnupg
44704   ./conf
125548  ./fedingo
9592    ./.cache
8       ./.vim
8       ./.ssh
49176   ./.local
259896  .

上面的命令列出了当前工作目录中的所有文件和文件夹以及它们的大小(以字节为单位)。

您可以使用以下命令获取有关 du 命令的更多详细信息

$ man du

怎样获取特定文件夹/目录的磁盘使用情况

这是获取特定目录/文件夹的磁盘使用情况的 linux 命令

$你/路径/到/你

这是一个 example 特定文件夹的 du 命令(例如 /etc/)

$ 来自 / 等 /

怎样以 GB 和 MB 为单位获取磁盘使用情况

您可以使用以下命令以人类可读的格式(Mb 和 Gb)获取磁盘使用情况

$ du -h

[email protected]:~$ du -h --max-depth=1
20K     ./.qws
8.0K    ./.gnupg
44M     ./conf
123M    ./fedingo
9.4M    ./.cache
8.0K    ./.vim
8.0K    ./.ssh
49M     ./.local
255M    .

怎样按文件夹/目录获取磁盘使用情况

您可以使用 -a 选项在 linux 中为所有文件和目录获取磁盘空间。 我们将使用其输出按目录/文件夹获取磁盘使用情况。

这是获取磁盘上前 5 个最大子文件夹的命令

$ sudo du -a | sort -n -r | head -n 5

这是获取特定文件夹/目录中前 5 个最大子文件夹的命令

$ sudo du -a /path/to/dir | sort -n -r | head -n 5

我们将使用上面的命令获取 /etc 文件夹中的前 5 个最大文件夹

$ sudo du -a /etc/ | sort -n -r | head -n 5
7432    /etc/
1076    /etc/apparmor.d
684     /etc/apache2
640     /etc/ssl
616     /etc/ssl/certs

在上面的命令中,我们使用 du -a 命令获取 /etc 中所有文件和文件夹的磁盘使用情况。 我们使用 sort 命令按字节降序对这个输出进行排序。 最后,我们只选择前 5 条记录。

同样,您可以使用 df 命令在用户具有读取访问权限的各种磁盘上为用户获取 linux 中的磁盘空间。

这是使用 df 命令检查磁盘空间的命令,并以人类可读的格式(Mb 和 Gb)获取磁盘使用情况

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs            98M  784K   98M   1% /run
/dev/xvda1      7.7G  4.7G  3.1G  61% /
tmpfs           490M     0  490M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           490M     0  490M   0% /sys/fs/cgroup
/dev/loop0       18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop3       29M   29M     0 100% /snap/amazon-ssm-agent/2012
/dev/loop4       97M   97M     0 100% /snap/core/9665
/dev/loop2       97M   97M     0 100% /snap/core/9804
tmpfs            98M     0   98M   0% /run/user/1000

上面的命令列出了用户有权访问的所有文件系统,每行一个。 输出的第一行包含列名称,例如文件系统、总磁盘空间、已用磁盘空间、可用磁盘空间、已使用磁盘空间百分比和挂载位置。 您可以使用它来获取您有权访问的各种文件系统的磁盘大小。

希望上面的命令可以帮助您在 linux 中以人类可读的格式为任何文件夹/目录获取磁盘空间。

BYNSS 可以在几分钟内轻松可视化数据,并在实时仪表板中进行监控。 今天就试试吧!