软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
硬连接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。
软连接
ln -s 源文件或目录 目标文件或目录
创建软连接最好加绝对路径
1
2
3
|
[ root@localhost ~]
# ln -s /root/3.txt /tmp/21.txt
[ root@localhost ~]
# ls -l /tmp/21.txt
lrwxrwxrwx. 1 root root 11 3月 20 06:14
/tmp/21
.txt ->
/root/3
.txt
|
目录软连接,目标目录不制定的话,会自动创建一个源目录同名的目录;
1
2
3
|
[root@localhost ~]
# ln -s /root/aa /tmp/
[ root@localhost ~]
# ls -l /tmp/aa
lrwxrwxrwx. 1 root root 8 3月 20 06:19
/tmp/aa
->
/root/aa
|
pwd -P 显示物理路径,真正的路径
pwd -L 显示逻辑路径,软连接的路径,默认pwd显示的是逻辑路径;
1
2
3
4
5
6
7
|
[root@localhost~]
# cd /tmp/aa/
[root@localhost aa]
# pwd
/tmp/aa
[root@localhost aa]
# pwd -P
/root/aa
[root@localhost aa]
# pwd -L
/tmp/aa
|
硬连接
ln 源文件 目标文件
ln 不加s 就是创建硬连接
1、硬连接不可以作用于目录。因为每个目录下面都会有一个.和..也就是说每个目录下面的子目录肯定会有它本身和它上一级目录,那么一旦设置了硬链接则会造成一种混乱,设置会导致死循环。硬链接的文件并不会占用空间大小,它只是复制了该文件的一份inode信息。
2、硬连接不可以跨分区链接。 因为inode的生成是在分区格式化划分好的。一个分区的inode是各不相同的。每个分区都有inode.有相同的inode会引起文件的混乱。
1
2
3
4
5
6
7
8
9
10
|
[ root@localhost ~]
# ln yong yong1 ln: "yong": 不允许将硬链接指向目录
[ root@localhost ~]
# ln 3.txt 4.txt
[ root@localhost ~]
# ls -l 3.txt 4.txt
-rw-r--r--. 2 root root 0 3月 20 06:08 3.txt
-rw-r--r--. 2 root root 0 3月 20 06:08 4.txt
[ root@localhost ~]
# ls -li 3.txt 4.txt 130736
-rw-r--r--. 2 root root 0 3月 20 06:08 3.txt 130736
-rw-r--r--. 2 root root 0 3月 20 06:08 4.txt
[ root@localhost ~]
# ln 3.txt /boot/4.txt
ln
: 创建硬链接
"/boot/4.txt"
=>
"3.txt"
: 无效的跨设备连接
|
硬连接文件2个文件具有相同的inode值,可以随便删除其中的一个;
本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1622578,如需转载请自行联系原作者