链接命令ln
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:ln -s [原文件] [目标文件]
-s 创建软链接
功能描述:生成链接文件
例:$ ln -s /etc/issue /tmp/issue.soft
创建文件/etc/issue 的软链接/tmp/issue.soft
$ ln /etc/issue /tmp/issue.hard
创建文件/etc/issue 的硬链接/tmp/issue.hard
ps:链接的方向,都是issue.soft(hard) -> issue
软连接特征
软连接其实就类似Windows 快捷方式,本质上就是一个指向原文件的链接。
- lrwxrwxrwx l 软链接,软链接文件权限都为rwxrwxrwx;
- 文件大小-只是符号链接,约47kb;
- /tmp/issue.soft -> /etc/issue 箭头指向原文件;
例如:
在/workspace/linuxStudy/
路径下创建了一个简单的c++程序test,就是打印Hello World,我们用ln生成一个软链接ln -s test test.soft
使用ls -l
查看目录属性:
可以看到生成的软连接如下,此时,我们可以通过调用test.soft来调用test,简单的可以认为test.soft就是test的快捷方式:
硬链接特征
硬链接可以简单理解为cp -p
的加强版,除了有cp -p的复制之外,还具有同步更新的功能,修改原文件,硬链接文件的内容也会修改。
- 硬链接 = cp -p + 同步更新
- 可通过i 节点识别
- 不能跨分区
- 不能针对目录使用
软硬链接的区别,就是软链接相当于一个快捷方式,而硬链接是直接复制,相当于C++里面的深浅拷贝的区别;
软链接只是存储的指向文件的指针,而硬链接直接把源文件复制了一份新的。
我们可以用ls -i
来查看文件的iNode:
可以看到硬链接test.hard的iNode和源文件test相同,软链接test.soft的iNode不同;
ps:
- 在linux中一个iNode不一定对应一个文件,硬链接就是一个特例;
- 硬链接用的很少,了解即可;软链接用的较多
- 区分是硬链接还是软链接,可以用
ls -l
查看文件属性,软链接的权限是lrwxrwxrwx(前面有一个l,三个权限都是rwx),且软链接会有->指向;