Linux命令ln、cp、硬链接和软链接

时间:2022-12-25 08:58:09

1.Linux链接概念
 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。

【硬连接】
 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode  Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用  户就可以建立硬连接到重要文件,以防止“误删”的功能。对于文件的操作同步到所有指向该索引节点的文件,但是删除时,只是删除一个连接并不影响索  引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。

【软连接】
 另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接  中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

【ln】

 ln 源文件 新文件                           #创建硬链接

 等效于:cp -l 源文件 新文件       


 ln  -s  源文件 新文件                    #创建软链接

 等效于:cp -s  源文件 新文件

【实例】

 [zz@ubuntu]:~$ touch f1          #创建一个测试文件f1
 [zz@ubuntu]:~$ ln f1 f2           #创建f1的一个硬连接文件f2
 [zz@ubuntu]:~$ ln -s f1 f3       #创建f1的一个符号连接文件f3
 [zz@ubuntu]:~$ ls -l               #看到:f3-->f1

 此时:f1和f2指向同一索引节点(同一文件对象),f3指向f1.

 对f1,f2,f3的写操作会保持同步.

 删除f1不会影响到f2,删除f2也不影响f1,删除f3不影响f1,但是删除f1,f3便没有链接对象,因此会输出:没有那个文件或目录.