linux下的连接文件——软连接和硬连接的区别
软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
硬连接和源文件的inode信息是一模一样的,可以说硬链接文件只是复制了一份源文件的inode信息,在我们看来硬链接文件和源文件没有什么区别,删除任何一个文件对方都不受影响,唯一的是少了一份inode,硬链接只能在同一个分区下创建,而软连接不受限制。硬链接文件和源文件虽然看起来像是两个文件,但是只占用一个文件的磁盘空间。
软连接
ln -s 源文件或目录 目标文件或目录
创建软连接最好加绝对路径
[ 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
目录软连接,目标目录不制定的话,会自动创建一个源目录同名的目录;
[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显示的是逻辑路径;
[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会引起文件的混乱。
[ 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值,可以随便删除其中的一个;
本文出自 “模范生的学习博客” 博客,请务必保留此出处http://8802265.blog.51cto.com/8792265/1622578
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。