linux软链接、硬链接和复制的区别

linux通过ln命令可以进行软链接和硬链接的创建,在使用的时候有区别:

1. 硬链接
# ln file1 file2

         实现对file1的一个硬连接。不能跨分区,文件夹无效。不同于拷贝(复制)。修改file1,file2会变;修改file2,file1会变。删除file1后file2任然存在且可用(数据任然为file1的数据)。

         每对file1增加一个硬连接,系统对file1的对应的硬盘数据节点的连接数加1,其Inode是共用的。当删除file1或file2等其它硬连接时,对磁盘对应的数据节点连接数减1,只有当连接数为0时,才真正的删除数据(inode)。

         硬链接的一个好处就是,文件移动到其他位置,仍旧有效,而软链接会出因为路径问题而无效。

2. 软链接
# ln -s file1 file2

        类似于windows的快捷方式,实现对file1的一个软连接,可以跨分区;可以应用到文件夹。修改file1,file2会变;修改file2,file1会变。删除file1后file2变为不可用。若强行编辑file2并保存,系统会生成文件file1,内容为file2编辑的内容。若对file2再建立软连接file3,实际效果为file3为file1的软连接。

3. 复制

        就不多说了,它是对文件(磁盘存储空间内容)的一个完全拷贝,文件之间互补影响

从上面的截图发现,file1和file2完全无法做出区分。很明显file3是一个符号链接。 另外数字2表明有2个连接数。

通过 ls -i选项可以列出inode number (下面的结果显示file1和file2的inodenumber相同,都为34998594)

weill@weill-Vbox:test$ ls -il
total 8
34998594 -rw-rw-r-- 2 weill weill 6  2月 10 19:59 file1.txt
34998594 -rw-rw-r-- 2 weill weill 6  2月 10 19:59 file2.txt
34998595 lrwxrwxrwx 1 weill weill 9  2月 10 20:00 file3.txt -> file1.txt

通过 find -inum 可以找出所有相同的inode number的文件。

weill@weill-Vbox:test$ find -inum 34998594
./file2.txt
./file1.txt

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章