Linux命令 – ln 软连接与硬链接区别介绍
ln命令可以生成软链接和硬链接,也可叫做符号链接和实体链接。 有兴趣深入理解的可以查阅相关文档,一般的读者只需记住以下几点即可:
不管是软链接还是硬链接都不会额外增加磁盘空间(虽然实际情况可能会多占用1个block)
软链接会占用1个inode,而硬链接不占用inode(想深究的可以自行查阅,不深究的可以直接略过)
硬链接不能跨文件系统,不能链接目录(可以得出软链接是可以的)。
为了更好理解举例如下:
硬链接:假设在当前目录有文件名为linuxidc.jpg(大小为1M),现在为它创建硬链接linuxidc-h.jpg,那么当前目录就有了2个文件,这2个文件除了名字不一样其他的一模一样,但是占用的实际磁盘空间还是只有1M,改变任何一个文件的内容另一个文件也会跟着改变;
当你只删除linuxidc.jpg或只删除linuxidc-h.jpg时,文件内容都还在磁盘,只有同时删除了这2个文件时才会真的彻底删除该1M的占用。
软链接:假设在当前目录有文件名为linuxidc.jpg(大小为1M),现在为它创建软链接linuxidc-s.jpg,那么当前目录就有了2个文件,linuxidc-s.jpg是一个全新的文件大小为7bytes(等于linuxidc.jpg名称占用的字节数),它指向linuxidc.jpg(学过C语言的指针理解起来会很快);
改变任何一个文件的内容另一个文件也会跟着改变,删除linuxidc-s.jpg不影响linuxidc.jpg,但是删除了linuxidc.jpg那么tmp-s.jpg就会失效因为它找不到它指向的文件了 。
我相信通过上面例子的解释,你应该可以自己辨别在哪些情况选择哪种链接方式了吧。
###bash###
#常用命令选项
#默认硬链接
-s #软链接
-f #如果目标文件存在时,直接移除后再创建(危险)
例子:
###bash###
#为/root/linuxidc.jpg生成软链接
ln -s /root/linuxidc.jpg /tmp/linuxidc.jpg
#为/root/dir目录生成软链接
ln -s /root/dir /linuxidc/dir1
#为/root/linuxidc.jpg生成硬链接
ln /root/linuxidc.jpg /tmp/linuxidc.jpg
注意:
###bash###
#假设文件夹aaa下有10个文件
ln -s aaa bbb #生成aaa的软链接bbb
#未来有一天当你想要删除软链接bbb
#只要敲如下命令
rm -f bbb
#千万别大意敲如下命令,这样会把aaa里面的10个文件删除掉
rm -rf bbb/ #在使用软连接过程中,请使用绝对路径,如果使用了想对路径,可能会出现连接数过多错误。
转发Linux就该这么学
最新文章
- Java学习笔记之JNDI(六)
- 关于在BAE上部署ThinkPHP框架的问题
- 用Broadcast广播在activity之间、fragment之间、activity和fragment之间相互传数据
- ROS->;The Official Tutorial
- request模块提交数据
- paoracle中的包头(Package)与包体(Package body)
- HALCON基础知识
- sphinx的简单实例
- Git-it:一个学习Git和Github的教程(软件)
- HDU4762(JAVA大数)
- java解压多层目录中多个压缩文件和处理压缩文件中有内层目录的情况
- Linux系统修改日期时间
- 也说性能测试,顺便说python的多进程+多线程、协程
- Linux系统中的文件权限
- mysql 初识数据库 目录
- oracle 之 CLUSTER_INTERCONNECTS is not set to the recommended value
- Quartz表结构说明
- Web API 源码剖析之默认消息处理程序链之路由分发器(HttpRoutingDispatcher)
- 转:oracle:win7手工卸载oracle数据库11g
- tesseract中文语言文件包 下载