Linux中的文件与链接
Linux系统中的文件又:普通文件、目录文件、链接文件、设备文件。
Linux中文件的元数据块存放文件的属性,文件数据块存放文件真实内容。元数据块至少包含:文件名,文件数据块的Inode编号。 ——参考博客
对于一个Inode指向的区域,只要还有文件的Inode指向该处,这个文件就还存在。删除时,判断指向该Inode的硬链接数,若为0,则删除该文件,否则删除对应的硬链接。
Ubuntu中的链接的特点 ——参考
链接分为软链接和硬链接,都是使用ln命令生成的,,无论是软链接还是硬链接,文件都保持同步变化。
硬链接:生成一个文件,该文件的Inode索引和源文件的Inode索引相同,所以是指向相同的文件。相当于引用。
软链接:生成一个文件,该文件的Inode与源文件不同,Inode指向的文件block内会存有源文件的Inode。相当于指针。
使用限制:不能对目录、不同文件系统、不存在的文件创建硬链接,但软链接都可以。
命令:
ln [-s] source target # 在target处建立一个source的链接;软链接需要-s参数,硬链接不用
# source和target必须为绝对路径,命令才能有效。
rm -rf path/to/target # 删除软链接,注意:target不能以斜杠'/'结尾 ——参考
eg:软链接
sudo ln -s full_source_path /usr/lib # 注意源路径写完整的,不以“/”结尾 sudo ldconfig # 使生效 ll /usr/lib # 查看相关链接 sudo rm -rf /usr/lib/xxx # 删除链接文件,不影响源目录
sudo rm -rf /usr/lib/xxx/ # 删除链接文件指向的源目录下的文件,链接不受影响
** 即 target是软链接,target/指向链接指向的内容
* 软链接可以移动,移动后依然和原链接文件保持链接关系