本文共 1656 字,大约阅读时间需要 5 分钟。
软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。
硬连接和源文件的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,如需转载请自行联系原作者