Linux通过命令行创建快捷方式使用的命令是ln,这里就涉及到了软链接和硬链接,确实有些不好理解,如果你也一样,那么可以继续看下去了
目录
ln命令
在Linux系统也可以创建快捷方式,和在win系统下是一样的,同样是使用快捷方式就可以直接进入到原文件夹的目录,或者原文件,不需要点击原文件
Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
语法
ln[参数][源文件或目录][目标文件或目录]
⚠️: 目标文件可以不存在,在创建链接时候会默认创建同名的文件
此处感谢大佬的指点:bluetata
实操
创建软链接:ln -s [源文件或目录][目标文件或目录]
对文件
lnTest.sh
创建快捷方式
创建快捷方式
lnTest-1.sh
,可以看到
lnTest-1.sh -> lnTest.sh
创建硬链接:ln [源文件或目录][目标文件]
对文件
lnTest2.sh
创建快捷方式
lnTest2-1.sh
,发现和软链接有区别
删除源文件,软链接和硬链接的表现
如下图结果
删除源文件后,软链接创建的快捷方式依然失效,但硬链接创建的快捷方式无影响
为什么呢有如此区别呢?那让我们进入理论部分
软链接和硬链接原理
软链接
- 软链接类似windows系统的快捷方式;
- 软链接里面存放的是源文件的路径,指向源文件;
- 删除源文件,软链接依然存在,但无法访问源文件内容;(上面实操的结论)
- 软链接失效时一般是白字红底闪烁;
- 创建软链接命令 ln -s 源文件 软链接文件;
- 软链接和源文件是不同的文件,文件类型也不同,inode号也不同;
- 软链接的文件类型是“l”,可以用rm删除。
硬链接
- 相同inode节点号的多个文件互为硬链接文件;
- 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;(上面实操的结论)
- 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
- 硬链接文件是文件的另一个入口;
- 可以通过给文件设置硬链接文件来防止重要文件被误删;
- 创建硬链接命令 ln 源文件 硬链接文件;
- 硬链接文件是普通文件,可以用rm删除;
- 对于静态文件(没有进程正在调用),当硬链接数为0时文件就被删除。注意:如果有进程正在调用,则无法删除或者即使文件名被删除但空间不会释放。
图示软硬链接的区别
硬链接和软链接的区别
- 原理上,硬链接和源文件的inode节点号相同,两者互为硬链接。软连接和源文件的inode节点号不同,进而指向的block也不同,软连接block中存放了源文件的路径名。
- 实际上,硬链接和源文件是同一份文件,而软连接是独立的文件,类似于快捷方式,存储着源文件的位置信息便于指向。
- 使用限制上,不能对目录创建硬链接,不能对不同文件系统创建硬链接,不能对不存在的文件创建硬链接;可以对目录创建软连接,可以跨文件系统创建软连接,可以对不存在的文件创建软连接。
版权归原作者 鲲志说 所有, 如有侵权,请联系我们删除。