Linux命令 – ln 软链接与硬连接区别介绍

ln命令能够生成软连接和硬连接,也可叫作符号连接和实体连接。 有兴趣深刻理解的能够查阅相关文档,通常的读者只需记住如下几点便可。

ln命令能够生成软连接和硬连接,也可叫作符号连接和实体连接。 有兴趣深刻理解的能够查阅相关文档,通常的读者只需记住如下几点便可:html

  • 1.无论是软连接仍是硬连接都不会额外增长磁盘空间(虽然实际状况可能会多占用1个block)
  • 2.软连接会占用1个inode,而硬连接不占用inode(想深究的能够自行查阅,不深究的能够直接略过)
  • 3.硬连接不能跨文件系统,不能连接目录(能够得出软连接是能够的)。

为了更好理解举例以下:node

硬连接:假设在当前目录有文件名为linuxidc.jpg(大小为1M),如今为它建立硬连接linuxidc-h.jpg,那么当前目录就有了2个文件,这2个文件除了名字不同其余的如出一辙,可是占用的实际磁盘空间仍是只有1M,改变任何一个文件的内容另外一个文件也会跟着改变;
当你只删除linuxidc.jpg或只删除linuxidc-h.jpg时,文件内容都还在磁盘,只有同时删除了这2个文件时才会真的完全删除该1M的占用。linux

软连接:假设在当前目录有文件名为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

我相信经过上面例子的解释,你应该能够本身辨别在哪些状况选择哪一种连接方式了吧。指针

###bash###
#经常使用命令选项
#默认硬连接
-s      #软连接
-f      #若是目标文件存在时,直接移除后再建立(危险)

例子:htm

###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/  #在使用软链接过程当中,请使用绝对路径,若是使用了想对路径,可能会出现链接数过多错误。

 

本文地址:https://www.linuxprobe.com/linux-ln.htmlget

相关文章
相关标签/搜索