开发者社区> 技术小胖子> 正文

Linux文件系统中软链接和硬链接的区别

简介:
+关注继续查看

1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。软链接类似Windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。


2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4K,即一个block的大小。


3.硬链接不能给目录做,不能跨分区做。软链接则都可以。


创建硬链接命令:


1
ln file filenew  #file为原文件名,filenew为新文件名。



创建软链接命令:


1
ln -s file filenew  #file为原文件名,filenew为新文件名。


详细代码

创建硬链接,abc 的硬链接abc2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost backup]# ll
总用量 20
-rwxr-xr-x 1 root root 19688 2月  27 23:54 abc
[root@localhost backup]# mkdir tests
[root@localhost backup]# ln abc tests/abc2
[root@localhost backup]# ll
总用量 24
-rwxr-xr-x 2 root root 19688 2月  27 23:54 abc
drwxr-xr-x 2 root root  4096 2月  27 23:55 tests
[root@localhost backup]# cd tests
[root@localhost tests]# ll
总用量 20
-rwxr-xr-x 2 root root 19688 2月  27 23:54 abc2
[root@localhost tests]# ls -i
794342 abc2
[root@localhost tests]# cd ../
[root@localhost backup]# ls -i
794342 abc  794343 tests
[root@localhost backup]#




      本文转自ning1022 51CTO博客,原文链接:http://blog.51cto.com/ning1022/1615833,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux内核14-clone()、fork()和vfork()的区别
Linux内核14-clone()、fork()和vfork()的区别
19 0
465/1000:linux中查询命令"ll"和"find"的区别
465/1000:linux中查询命令"ll"和"find"的区别
31 0
Linux下Shell变量,环境变量的联系与区别
Linux下Shell变量,环境变量的联系与区别
14 0
简要聊聊UNIX,MINIX,LINUX,BSD的区别与特质
# 聊聊linux,minux,bsd,unix的历史与区别 Linux、MINIX、BSD和UNIX都是类UNIX操作系统,它们都是基于UNIX操作系统的,但也有很多不同点。 UNIX操作系统最早由贝尔实验室的Ken Thompson和Dennis Ritchie于1970年代初开发。Unix是商业操作系统,主要应用于大型机和服务器领域,具有高性能和可靠性。但Unix的源代码是封闭的,用户只能购买许可证来使用。
27668 0
macOS 和 Linux 有什么区别?底层原理是什么?
macOS 和 Linux 有什么区别?底层原理是什么?
63 0
Linux 重定向: >和>>的区别,2>&1解释:
Linux 重定向: >和>>的区别,2>&1解释:
61 0
Linux:报错“command not found: yum”及yum和apt-get的区别
Linux:报错“command not found: yum”及yum和apt-get的区别
247 0
linux内核和发行版有什么区别?附镜像包以及如何查看Linux系统内核版本和发行版本
linux内核和发行版有什么区别?附镜像包以及如何查看Linux系统内核版本和发行版本
220 0
Linux中su、su -和sudo的区别
Linux中su、su -和sudo的区别
39 0
Alibaba Cloud Linux和CentOS有什么区别?
阿里云服务器Linux操作系统Alibaba Cloud Linux和CentOS有什么区别?
218 0
+关注
技术小胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
ECS运维指南 之 Linux系统诊断
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多
相关镜像