查看磁盘和目录的容量

df 列出文件系统的整个磁盘的使用量

格式:

当df后面加目录或者文件名时,df会自动分析目录或文件所处的分区,并列出该分区的容量

df [-ahikHTm] [目錄或檔名]

选项与参数

  • -a :列出所有的檔案系統,包括系統特有的 /proc 等檔案系統;
  • -k :以 KBytes 的容量顯示各檔案系統;
  • -m :以 MBytes 的容量顯示各檔案系統;
  • -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
  • -H :以 M=1000K 取代 M=1024K 的進位方式;
  • -T :連同該 partition 的 filesystem 名稱 (例如 xfs) 也列出;
  • -i :不用磁碟容量,而以 inode 的數量來顯示

例子

Linux系统内部可以存在多个文件系统

例1: 列出系统中的所有文件系统

  • Filesystem:代表該檔案系統是在哪個分区,所以列出裝置名稱;
  • 1k-blocks:說明底下的數字單位是 1KB ,可利用 -h 或 -m 來改變容量的单位;
  • Used:顧名思義,就是使用掉的磁碟空間啦!
  • Available:也就是剩下的磁碟空間大小;
  • Use%:就是磁碟的使用率啦!如果使用率高達 90% 以上時, 最好需要注意一下了,免得容量不足造成系統問題喔!(例如最容易被灌爆的 /var/spool/mail 這個放置郵件的磁碟)
  • Mounted on:就是磁碟掛載的目錄所在啦!(掛載點)
[root@study ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
/dev/mapper/centos-root  10475520 3409408   7066112  33% /
devtmpfs                   627700       0    627700   0% /dev
tmpfs                      637568      80    637488   1% /dev/shm
tmpfs                      637568   24684    612884   4% /run
tmpfs                      637568       0    637568   0% /sys/fs/cgroup
/dev/mapper/centos-home   5232640   67720   5164920   2% /home
/dev/vda2                 1038336  133704    904632  13% /boot

例2: 指定显示的容量单位

[root@study ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   10G  3.3G  6.8G  33% /
devtmpfs                 613M     0  613M   0% /dev
tmpfs                    623M   80K  623M   1% /dev/shm
tmpfs                    623M   25M  599M   4% /run
tmpfs                    623M     0  623M   0% /sys/fs/cgroup
/dev/mapper/centos-home  5.0G   67M  5.0G   2% /home
/dev/vda2               1014M  131M  884M  13% /boot

例3: df后面加目录或文件

  • 會自動的分析該目錄或檔案所在的分区,並將該分区的容量顯示出來
  • 可以通过这个获取目录剩余容量
[root@study ~]# df -h /etc
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   10G  3.3G  6.8G  33% /

du 查看目录占用的容量

容量输出的默认单位是kb

格式

du [-ahskm] 檔案或目錄名稱

参数与参数

  • -a :列出所有的檔案與目錄容量,因為預設僅統計目錄底下的檔案量而已。
  • -h :以人們較易讀的容量格式 (G/M) 顯示;
  • -s :列出總量而已,而不列出每個各別的目錄佔用容量✨
  • -S :不包括子目錄下的總計,與 -s 有點差別。
  • -k :以 KBytes 列出容量顯示;
  • -m :以 MBytes 列出容量顯示;

例子

**例1:**列出当前目录下的所有文件的容量

  • 直接用du只会显示目录
  • 预设仅会统计执行命令的目录下的文件容量。
  • 因为没有附加任何选项,所以在实际显示时,仅仅会显示目录的容量,不包含文件
[root@study ~]# du
4       ./.cache/dconf  <==每個目錄都會列出來
4       ./.cache/abrt
8       ./.cache
....(中間省略)....
0       ./test4
4       ./.ssh          <==包括隱藏檔的目錄
76      .               <==這個目錄(.)所佔用的總量

**例2:**在例1的基础上将文件的容量也列出来

相较于例1,例2中的列表中将文件也显示出来了

root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir# du -a
0       ./c.txt
0       ./b.txt
0       ./TempDir2/chenzhe.txt
4       ./TempDir2
4       ./a.txt
12      .

实体与符号链接:ln

Hard Link(实体链接、硬式链接或实际链接)

定义

创建实体链接后,即使删除其中一个文件名,也可以通过另一个文件名访问,只要存在一个文件名,那么记录真实数据的block(即是indoe指向的东东)就会一直存在。

格式

无任何选项和参数 生成的硬链接存储在执行命令的目录下

ln 來源檔 目標檔

新建多个文件名,指向同一个inode,从而实现不同的文件名指向同一个文件。

限制

  • 不能跨文件系统
  • 不能链接目录

例子

查看文件信息时可以发现,indoe的链接数变成2个了。 创建crontab的实体链接,并通过比较文件内容确认是否是同一内容。

root@iZbp1aupqg3cfppq5uigwdZ:~# ln TempDir/TempDir2/chenzhe.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ls
chenzhe.txt  <==创建实体链接成功。
root@iZbp1aupqg3cfppq5uigwdZ:~# cd TempDir/TempDir2/
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# cat chenzhe.txt
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# vim chenzhe.txt  //添加陈哲到此一游!
root@iZbp1aupqg3cfppq5uigwdZ:~/TempDir/TempDir2# cd ~
root@iZbp1aupqg3cfppq5uigwdZ:~# cat chenzhe.txt
陈哲到此一游!  <= 成功,显示同一内容了
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i chenzhe.txt
271117 -rw-r--r-- 2 root root 20 Dec  5 16:18 chenzhe.txt <== 里面的2就是indoe链接数,由1变成2了。

Symolic Link(符号链接)

相当于windows中的快捷方式,就是创建一个包含指向原始文件链接的独立文件。如果原始文件被删除,那么这个快捷方式也会无法找到原始文件,然后报错

格式

ln [-sf] 來源檔 目標檔

选项与参数

  • -s :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
  • -f :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!

与Hard Link相比

  • 可以创建目录的快捷方式
  • 相对来说没有Hard Link安全,因为其会随着原始文件的删除而失效

例子:

按我个人理解,a.txt的符号链接属于一个独立的文件,那么其是占用了一个indoe的。

创建a.txt的符号链接,通过比较其文件属性,得出二则为不同文件的结论

root@iZbp1aupqg3cfppq5uigwdZ:~# ln -s TempDir/a.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ls
a.txt  <== 目录下多了与对象文件名相同的文件
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i a.txt  <== 查看其属性,发现其是链接文件,且权限也与原文件不同
131057 lrwxrwxrwx 1 root root 13 Dec  5 18:13 a.txt -> TempDir/a.txt
root@iZbp1aupqg3cfppq5uigwdZ:~# ll -i TempDir/a.txt <== 原文件的文件信息
271129 -rw-r--r-- 1 root root 19 Dec  5 15:46 TempDir/a.txt

关于目录的Link数量:

创建新文件/目录时,其所在目录所持有的inode数量会增加 创建硬链接🔗,其所在的目录所持有的inode数量不会发生变化,其创建的文件指向同一个inode. 创建软链接🔗,其所在的目录所持有的inode数量会增加,因为其属于一个独立的文件。

最后修改:2023 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏