Linux中的链接文件

Linux中的链接文件

简单点说链接文件是linux物理文件的备份。在linux中有两种类型的文件链接:

  • 符号链接
  • 硬链接

    符号链接

    符号链接也是一个具体的文件,只不过它指向另外一个文件,这两个文件的内容是不一样的。

创建一个符号链接也很简单:ln -s 文件名称 符号链接文件名称

我们先创建一个文件,再为这个文件创建一个符号链接,然后看看这两个文件有什么不同

1
$ touch data_file
2
$ ln -s data_file data_file_lns
3
$ ls -l
4
total 0
5
2003950 -rw-rw-r-- 1 bingyang bingyang 0 Jun 22 19:18 data_file
6
2003951 lrwxrwxrwx 1 bingyang bingyang 9 Jun 22 19:19 data_file_lns -> data_file

可以看到data_file的文件编号是2003950data_file_lns2003951,所以他们两个是完全不同的文件。我们可以修改data_file文件,保存后再打开data_file_lns会发现就是data_file的内容。

如果我们把data_file删除后,再打印data_file_lns的内容会发现找不到文件

1
$ rm data_file
2
$ cat data_file_lns
3
cat: data_file_lns: No such file or directory

硬链接

我们先创建一个硬链接,看看它和符号链接有什么不同,创建硬链接的命令跟符号链接一样,只是不用加-s参数.

1
$ ln data_file data_file_ln
2
$ ls -il
3
2003950 -rw-rw-r-- 2 bingyang bingyang 0 Jun 22 19:30 data_file
4
2003950 -rw-rw-r-- 2 bingyang bingyang 0 Jun 22 19:30 data_file_ln

我们可以看到data_file_ln后面没有显示一个箭头指向data_file,而且它们的文件编码是一样的,所以从根本上而言它们是同一个文件。

我们可以修改data_file的内容输入bingyang,保存后删除data_file,然后打印data_file_ln来看看结果

1
$ rm data_file
2
$ cat data_file_ln
3
bingyang

总结

总的来说符号链接跟硬链接的最大不同之处就是,硬链接会保存最原始文件的地址与信息,而符号链接只会保存虚拟路径的信息,所以如果对虚拟路径执行删除操作,硬链接依然能够找到源文件,而符号链接就再也找不到源文件了。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×