linux - 文件系统和软硬链接

93 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详

文件系统

文件是操作系统提供给用户操作硬件的功能

文件系统是操作系统中负责操作硬盘的一段程序

文件系统可以从硬件层面和软件层面去理解:

  • 硬件层面:硬盘分区
  • 软件层面:文件系统

操作系统中硬盘分成几个区就有几个文件系统。

df命令可以查看当前系统中有哪些文件系统。

df -h 查看文件系统大小以GB/MB格式显示,比较方便查看

df -i可以查看文件系统中可用的inode号,inode号是标识文件的

[root@VM-4-2-centos ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs         1864236       0   1864236   0% /dev
tmpfs            1880380      24   1880356   1% /dev/shm
tmpfs            1880380     468   1879912   1% /run
tmpfs            1880380       0   1880380   0% /sys/fs/cgroup
/dev/vda1       61860632 6801908  52442060  12% /
tmpfs             376076       0    376076   0% /run/user/0

一个文件由以下两部分组成:

  • 元数据:文件名 属主 属组 权限 时间参数 inode号
  • 文件真实数据

ls -i 路径可以查看文件的inode号

stat 文件查看文件的元数据

软硬链接

硬链接

一个文件只能有一个inode号,但是一个inode号可以被多个文件使用。

硬链接就是两个文件指向同一个inode号。

ln 原文件路径 硬链接路径
​
ln a.txt b.txt
ll a.txt
-rw-r--r-- 2 root root 25 Aug  9 20:48 a.txt  # 权限后面的数字表示硬链接数量,a.txt b.txt都有两个硬链接

软链接

软链接的两个文件的inode号不同,类似于windows系统中的快捷方式。

软链接文件->原文件->inode号->inode块->真实数据

ln -s 原文件路径 软链接路径

软链接和硬链接的区别

硬链接不能用在目录上,只能对文件使用硬链接,因为硬链接只限于一个文件系统,无法跨分区创建硬链接。

创建硬链接的两个文件删除任何一个都不会对另一个有影响。

软链接可以用在目录上,如果原文件删除软链接文件将不能访问

如何查看文件属于哪个分区呢?

从右向左看文件路径,直到看到分区的路径,就表示在哪个分区