linux软连接和硬连接学习笔记

linux软连接和硬连接的概念


[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效

总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

原文链接:http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html

运用

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

例如:ln -s /bin/less /usr/local/bin/less-s 是代号(symbolic)的意思。

这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less 


注意: 

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化; 

第二,ln的链接又软链接和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。


第三:目录不能建立硬链接,但可以建立软链接。

原文链接:http://blog.youkuaiyun.com/hanxuehen/article/details/42388047


### 关于 Linux 的学习资料 以下是针对 Linux 学习的一些推荐资源教程: #### 1. 尚硅谷 Linux 学习笔记 尚硅谷提供了详尽的 Linux 学习笔记,涵盖了基础到高级的内容。这些笔记不仅包含了常用的命令操作,还涉及服务器配置、网络管理等方面的知识[^1]。 #### 2. CentOS 官方文档 CentOS 是一种广泛使用的 Linux 发行版,在企业环境中非常流行。官方文档中详细介绍了如何安装、配置维护 CentOS 系统,适合初学者中级用户深入研究[^3]。 #### 3. 高级命令实践指南 除了常见的 `ls`、`cd` 等基本命令外,掌握一些高级命令对于提升效率至关重要。例如: - **find**: 查找文件或目录。 - **df**: 显示磁盘空间使用情况。 - **tar**: 打包压缩工具。 - **ps/top/netstat**: 进程管理监控网络状态。 另外还有更复杂的命令组合技巧可以提高工作效率,比如通过管道符 (`|`) 结合多个命令完成复杂任务。 #### 4. 内核编译与模块加载 如果计划深入了解操作系统层面,则需要了解内核源码结构及其构建过程。例如解决因缺少头文件链接而无法正常编译驱动程序的问题时,可参照如下方法创建连接来修复路径错误: ```bash sudo ln -s /usr/src/kernels/3.10.0-1160.el7.x86_64/include/generated/uapi/linux/version.h \ /usr/src/kernels/3.10.0-1160.el7.x86_64/include/linux/version.h ``` 此脚本解决了特定版本下的兼容性问题[^2]。 #### 5. 跨平台文件传输解决方案-Xftp 为了方便Windows用户访问远程Linux主机上的数据,Xshell套件中的组件之一Xftp提供了一种简便的方式来进行安全的数据交换,它支持多种协议并具备图形化界面便于操作[^4]. 综上所述,Linux作为当前主流的服务端操作系统拥有丰富的社区支持技术积累,无论是个人还是团队都可以从中受益匪浅.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值