linux下的连接文件——软连接和硬连接的区别

简介:

软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小。当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了。


硬连接和源文件的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,如需转载请自行联系原作者

目录
相关文章
|
1天前
|
监控 Linux
Linux修改fs.inotify.max_user_watches(“外部文件更改同步可能很慢”和“当前的 inotify(7) 监视限制太低”)
Linux修改fs.inotify.max_user_watches(“外部文件更改同步可能很慢”和“当前的 inotify(7) 监视限制太低”)
4 0
|
1天前
|
Linux 网络安全 开发工具
【linux】基础IO |文件操作符
【linux】基础IO |文件操作符
10 0
|
1天前
|
存储 Linux 程序员
tar命令详解:linux文件打包神器
tar命令详解:linux文件打包神器
|
3天前
|
存储 Linux 数据安全/隐私保护
linux解压zip文件命令
linux解压zip文件命令
|
4天前
|
Linux Go
【Linux基础】 文件基本属性
Linux文件基本属性是指文件或目录在Linux系统中具有的一系列特性和信息。这些属性提供了关于文件或目录的详细信息,包括其类型、权限、大小、创建和修改时间等。本篇文章带你详细了解Linux属性概念,以及怎样更改文件属性。
11 0
【Linux基础】 文件基本属性
|
5天前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
26 11
|
5天前
|
存储 NoSQL 安全
深入Linux Core文件生成与自定义命名规则
深入Linux Core文件生成与自定义命名规则
13 2
|
24天前
|
Linux
14. 【Linux教程】文件压缩与解压
14. 【Linux教程】文件压缩与解压
17 0
|
1月前
|
算法 Linux
Linux:文件增删 & 文件压缩指令
Linux:文件增删 & 文件压缩指令
15 0
|
1月前
|
Unix Linux Shell
Linux 常用命令汇总(一):查询帮助 & 文件压缩及解压缩 & 搜索文件
Linux 常用命令汇总(一):查询帮助 & 文件压缩及解压缩 & 搜索文件