链接文件
1 | ln p1 p2 |
创建一个新的硬链接,由路径p1标识的文件创建一个路径名为p2的硬链接。
硬链接特性:
- 不允许用户给目录创建硬链接。因为这可能把目录树变为环形图,从而就不能通过名字定位一个文件。
- 只有在同一个文件系统中的文件之间才能创建链接。这带来比较大的限制。
1 | ln -s p1 p2 |
创建一个软连接,也称符号链接。符号链接是段文件,这些文件包含有另一个文件的任意一个路径名。路径名可以指向2位于任意一个文件系统的人任意目录或文件,甚至包括不存在的文件。
Linux中的所有文件类型
- 普通文件
- 目录
- 符号链接
- 面向块的设备文件
- 面向字符的设备文件
- 管道和命名管道
- 套接字
Linux中的文件描述与索引
文件系统处理文件需要所有的信息包含在一个名为索引节点的数据结构中。每个文件都有自己的索引节点 ,文件系统用索引节点来标识文件。
文件系统及内核函数对索引节点的处理可能随Unix西永的不同有很大的差异,但必须提供POSIX标准中指定如下属性:
- 文件类型
- 与 文件相关的硬链接数量
- 以字节为单位的文件长度
- 设备标识符(即包含文件的设备的表示符)
- 在文件系统中表示文件的索引节点号
- 文件拥有者的UID
- 文件的用户组ID
- 几个时间戳,表示索引节点状态改变的事件最后访问事件与最后修改时间
- 访问权限和文件模式
Linux文件权限
每三个为一组
第一组(文件所有者权限)
第二组(同组用户,不包括所有者权限)
第三组(其他用户权限)
可用chmod命令修改文件权限 例:chmod 777 <filename>
除此之外还有三种附加的标记
suid
进程执行一个文件时通常保持进程拥有者的UID,然而如果设置了可执行文件的suid的标志位,进程就获得了该文件拥有者的UID。
sgid
进程执行一个文件时保持进程组的用户组ID。然而设置了可执行sgid标志位,进程就获得了该文件用户组的ID。
sticky
实则知了sticky标志位的可执行文件相当于向内核发出一个请求,当程序执行结束后,依然将他保留在内存。这个标志现在已经使用基于代码页共享的其他方法替代。