跳转至

磁盘相关的命令

约 744 个字 33 行代码 3 张图片 预计阅读时间 3 分钟

磁盘存储文件的方式

可以将磁盘视为若干个区块(block),区块大小在磁盘格式化时即确定。

文件的数据至少占用一个区块,如果超出一个区块,则放到另一个区块,以此类推。

占用空间 >= 文件大小,如果存在大量小文件,其差距更加悬殊。

占用空间与文件大小差距悬殊
占用空间与文件大小差距悬殊

多区块数据访问的方式

一种方法(索引式文件系统,如 ext2)

划分分区的一部分存放文件信息,更大的一部分存放文件内容。

存放文件信息的区域被划分为多个 inode,一个 inode 存放一个文件的信息。

存放文件内容的区域划分为多个区块,文件信息中存有文件内容对应的区块。

多区块数据访问的方式 - 1
多区块数据访问的方式 - 1

另一种方法(如 FAT)

一个区块末尾存放指针,指向下一个区块。

多区块数据访问的方式 - 2
多区块数据访问的方式 - 2

第二种方法易造成磁盘碎片,第一种基本上不太需要碎片整理。

文件系统

Linux 有 VFS(虚拟文件系统)的功能,只要系统支持,一般情况下,程序不需要考虑具体的文件系统是什么。

Linux 支持多种文件系统,可以通过该目录查看支持的文件系统:

ls /lib/modules/$(uname -r)/kernel/fs

安装系统分区时,Ubuntu 默认是 ext4 文件系统,CentOS 默认是 xfs 文件系统。

df - 查看各文件系统磁盘使用量

df [选项] [目录或文件]

后接目录或文件,表示查看该目录 / 文件所在分区的磁盘使用量。

选项:

  • -a:列出所有的文件系统
  • -k-m:以 KiB、MiB 的形式显示(默认是 KiB)
  • -h:以人类易读的形式显示
  • -H:同上,但将 *iB (1024 进位)替换为 *B(1000 进位)
  • -T:显示文件系统类型
  • -i:显示 inode 数量,而非磁盘容量

例:

ding@ding-server:~$ df
Filesystem                        1K-blocks     Used Available Use% Mounted on
udev                                8151776        0   8151776   0% /dev
tmpfs                               1639352     2488   1636864   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 102687672 48447868  48980540  50% /
tmpfs                               8196752        0   8196752   0% /dev/shm
tmpfs                                  5120        0      5120   0% /run/lock
tmpfs                               8196752        0   8196752   0% /sys/fs/cgroup
/dev/sda2                           1515376   213156   1207196  16% /boot
tmpfs                               1639348        0   1639348   0% /run/user/1000

占用空间最好不要超过 90%。

du - 查看文件 / 目录的磁盘使用量

du [选项] [目录或文件]

不写目录或文件,则分析当前目录的情况。

如遇到无权访问的文件,会报错(但不会停止),有标准错误输出。

选项:

  • -a:列出目录下所有的文件与目录的使用量(默认仅列出目录下所有的目录的使用量)
  • -h:以人类易读的形式显示
  • -s:仅列出给定目录 / 文件的使用总量
  • -S:父目录的使用量不包括子目录的
  • -k-m:以 KiB、MiB 的方式显示(默认是 KiB)

例:

ding@ding-server:~$ du smurf_153_conf/document/
744     smurf_153_conf/document/assets/环境配置
40      smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
44      smurf_153_conf/document/assets/nacos_config
932     smurf_153_conf/document/assets
996     smurf_153_conf/document/
ding@ding-server:~$ du -m smurf_153_conf/document/
1       smurf_153_conf/document/assets/环境配置
1       smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
1       smurf_153_conf/document/assets/nacos_config
1       smurf_153_conf/document/assets
1       smurf_153_conf/document/
ding@ding-server:~$ du -S smurf_153_conf/document/
744     smurf_153_conf/document/assets/环境配置
40      smurf_153_conf/document/assets/nacos_config/SMURF_CONFIG
4       smurf_153_conf/document/assets/nacos_config
144     smurf_153_conf/document/assets
64      smurf_153_conf/document/
ding@ding-server:~$ du -s smurf_153_conf/document/
996     smurf_153_conf/document/

参考资料