软链接和硬链接的区别

软链接和硬链接的区别

什么是链接:

文件都是文件名和数据组成的,在linux中被分成两部分:数据和元数据。数据是记录文件的真实内容的地方;元数据是记录文件属性的地方:创建者、大小、创建时间等信息。元数据中的inode号这是唯一标识文件身份的属性。在linux中,文件的inode号可以通过ls –i命令查看。在linux中为了解决文件共享使用,引入了两种链接:硬链接和软链接。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名。

硬链接:

硬链接可以通过ln命令创建:

blob.png

硬链接有相同的inode号,只是文件名不同的文件,所以硬链接有以下的几点特性:

1、文件有相同的inode号、数据块;

blob.png

2、只能对已经存在的文件进行创建;

blob.png

3、不能跨分区进行创建;

blob.png

4、不能对目录创建硬链接,而只能对文件。因为在linux的目录中,有两个特殊的文件...,用命令查看这两个目录的inode号可以知道这两个是两个硬链接,如果可以创建硬链接的话,就会形成目录环;

blob.png

blob.png

5、删除一个硬链接并不影响其他有相同inode号的文件,将其中的一个硬链接删除后,其他的文件的链接数-1,只有当链接数为0时,文件删除;

blob.png

linux系统中,可以通过命令find PATH –inum XXX 命令来查看inode号为XXX的文件已经文件的路径。

注:在一个分区中,会出现inode号被用完但是磁盘还有空间剩余的情况,这时候在该分区中创建文件,会提示空间不足:

  blob.png

软链接:

若文件的数据中存放的是指向的另一个文件的路径名,这就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。可以用ln –s XXX xxx命令来创建软链接。

与硬链接相比,软链接有以下的特点:

1、软链接有自己的文件属性、权限等;

2、可以跨分区创建;

3、可以对文件以及目录创建;

4、创建软链接时,链接计数不会增加;

5、删除软链接时,不会影响被指向的文件;但是当被指向的文件或目录被删除时,相关的链接就会出错;

原创文章,作者:王更生,如若转载,请注明出处:http://www.178linux.com/53284

(1)
王更生王更生
上一篇 2016-10-20
下一篇 2016-10-20

相关推荐

  • 第四周练习

    1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。         # cp -r /etc/skel /home/tuser1      &nb…

    Linux干货 2016-11-18
  • 第五次作业

    1、当用户xiaoming 对/testdir  目录无执行权限时,意味着无法做哪些操作?   由于/testdir为目录,意味着xiaoming用户对此目录至少不能用cd命令跳转进入目录内,但是可以用ls -l命令查看此目录下的文件列表详细信息 2、当用户xiaoqiang 对/testdir  目录无读权限时,意味…

    Linux干货 2016-08-07
  • bash脚本编程

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell;分别统计这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i loginSum=0; declare -i nologinSum=0; for x in `cat /etc/passwd|cut -d: -f 7` do if [ “/sb…

    Linux干货 2017-10-31
  • Nginx

        Nginx(发音同engine x)是一个 Web服务器,也可以用作反向代理,负载平衡器和 HTTP缓存。Nginx 可以部署在网络上使用 FastCGI,脚本,SCGI 处理程序,WSGI 应用服务器或 Phusion 乘客模块的动态 HTTP 内容,并可作为软件负载均衡器。Nginx 使…

    Linux干货 2017-08-29
  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录与路径 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录 cd (切换目录) . &n…

    Linux干货 2016-11-06
  • Linux Basics–part6

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; tmp]# cp /etc/rc.d/init.d/rc.sysinit /tmp/rc.sysinit tmp]# vim rc.sysinit : 进入末行模式 %s@^[[:space:]]\+@#@g 2…

    Linux干货 2017-08-24