linux之软链接和硬链接

一、介绍
ln命令用于将一个文件创建链接,链接分为软链接(类似于windows系统中的快捷方式)和硬链接(相当于对源文件copy,程序或命令对该文件block的另一个访问路口),命令默认使用硬链接。

二、使用方法

语法:ln [选项][文件]
选项:-s 对源文件创建软链接

三、案例:
1.对文件创建软链接

[root@ping ~]# ln -s /root/student.sql /root/db/ln.sql
[root@ping ~]# ls -lh db/ln.sql
lrwxrwxrwx 1 root root 17 2月  23 15:31 db/ln.sql -> /root/student.sql

2.对目录创建软链接

[root@ping ~]# ln -s db data
[root@ping ~]# ll -h data/
lrwxrwxrwx 1 root root 17 2月  23 15:31 ln.sql -> /root/student.sql

3.对文件创建硬链接

[root@ping ~]# ln student.sql db/
[root@ping ~]# ls -lh db/
lrwxrwxrwx 1 root root   17 2月  23 15:31 ln.sql -> /root/student.sql
-rw-r--r-- 2 root root 2.9K 2月  12 10:17 student.sql

软链接硬链接复制的区别

1.硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

通过ls -al 查看到硬链接和源文件的文件类型一样为“-”而软链接为“l”

ls -ai 会显示文件的硬链接数量,如果有硬链接则>1

也可以用 stat XX 来查看文件的inode信息来区分两个文件是复制的还是硬链接的

其实硬链接和软链接和源文件三者任意一个改变三者都会同步改变,这是他们与复制之间的区别

2.硬链接只能用于文件,不能用于目录;软链接可以为目录建链接。
3.硬链接不能跨文件系统操作。

既然软链接和硬链接和源文件的内容是同步的,那软链接和硬链接的应用场景有什么不同呢

下面这句话吊了,一语道破了

A硬链B 删除B后A依然存在,且可用。
A软链B 删除B后A存在,但不可用了(相当于Windows下快捷方式指向的目标不存在了)

你可能感兴趣的:(linux之软链接和硬链接)