软链接之所以也被称为特殊文件的原因是:它一般情况下不占用data block,仅仅通过它对应的inode记录就能将其信息描述完成;符号链接的大小是其指向目标路径占用的字符个数,例如某个符号链接的指向方式为"rmt --> ../sbin/rmt",则其文件大小为11字节;只有当符号链接指向的目标的路径名较长(60个字节)时文件系统才会划分一个data block给它;它的权限如何也不重要,因它只是一个指向原文件的"工具",最终决定是否能读写执行的权限由原文件决定,所以很可能ls -l查看到的符号链接权限为777。
注意,软链接的block指针存储的是目标文件名。也就是说,链接文件的一切都依赖于其目标文件名。这就解释了为什么/mnt的软链接/tmp/mnt在/mnt挂载文件系统后,通过软链接就能进入/mnt所挂载的文件系统。究其原因,还是因为其目标文件名"/mnt"并没有改变。
例如以下筛选出了/etc/下的符号链接,注意观察它们的权限和它们占用的空间大小。
- [root@xuexi ~]# ll /etc/ | grep '^l'
- lrwxrwxrwx. 1 root root 56 Feb 18 2016 favicon.png -> /usr/share/icons/hicolor/16x16/apps/system-logo-icon.png
- lrwxrwxrwx. 1 root root 22 Feb 18 2016 grub.conf -> ../boot/grub/grub.conf
- lrwxrwxrwx. 1 root root 11 Feb 18 2016 init.d -> rc.d/init.d
- lrwxrwxrwx. 1 root root 7 Feb 18 2016 rc -> rc.d/rc
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc0.d -> rc.d/rc0.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc1.d -> rc.d/rc1.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc2.d -> rc.d/rc2.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc3.d -> rc.d/rc3.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc4.d -> rc.d/rc4.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc5.d -> rc.d/rc5.d
- lrwxrwxrwx. 1 root root 10 Feb 18 2016 rc6.d -> rc.d/rc6.d
- lrwxrwxrwx. 1 root root 13 Feb 18 2016 rc.local -> rc.d/rc.local
- lrwxrwxrwx. 1 root root 15 Feb 18 2016 rc.sysinit -> rc.d/rc.sysinit
- lrwxrwxrwx. 1 root root 14 Feb 18 2016 redhat-release -> centos-release
- lrwxrwxrwx. 1 root root 11 Apr 10 2016 rmt -> ../sbin/rmt
- lrwxrwxrwx. 1 root root 14 Feb 18 2016 system-release -> centos-release
3.3 设备文件、FIFO、套接字文件
关于这3种文件类型的文件只需要通过inode就能完全保存它们的信息,它们不占用任何数据块,所以它们是特殊文件。
设备文件的主设备号和次设备号也保存在inode中。以下是/dev/下的部分设备信息。注意到它们的第5列和第6列信息,它们分别是主设备号和次设备号,主设备号标识每一种设备的类型,次设备号标识同种设备类型的不同编号;也注意到这些信息中没有大小的信息,因为设备文件不占用数据块所以没有大小的概念。
- [root@xuexi ~]# ll /dev | tail
- crw-rw---- 1 vcsa tty 7, 129 Oct 7 21:26 vcsa1
- crw-rw---- 1 vcsa tty 7, 130 Oct 7 21:27 vcsa2
- crw-rw---- 1 vcsa tty 7, 131 Oct 7 21:27 vcsa3
- crw-rw---- 1 vcsa tty 7, 132 Oct 7 21:27 vcsa4
- crw-rw---- 1 vcsa tty 7, 133 Oct 7 21:27 vcsa5
- crw-rw---- 1 vcsa tty 7, 134 Oct 7 21:27 vcsa6
- crw-rw---- 1 root root 10, 63 Oct 7 21:26 vga_arbiter
- crw------- 1 root root 10, 57 Oct 7 21:26 vmci
- crw-rw-rw- 1 root root 10, 56 Oct 7 21:27 vsock
- crw-rw-rw- 1 root root 1, 5 Oct 7 21:26 zero
4.inode基础知识
每个文件都有一个inode,在将inode关联到文件后系统将通过inode号来识别文件,而不是文件名。并且访问文件时将先找到inode,通过inode中记录的block位置找到该文件。
4.1 硬链接
(编辑:ASP站长网)
|