精华内容
下载资源
问答
  • 硬链接和符号链接详解

    千次阅读 多人点赞 2018-08-10 08:38:53
    建立硬链接时,链接文件被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。 在硬链接的情况下,参数中的“目标”被链接至[链接名]...

    文件属性软硬连接:

    链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

    在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。如果[链接名]为一个文件,用户将被告知该文件已存在且不进行链接。如果指定了多个“目标”参数,那么最后一个参数必须为目录。

    如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

    硬链接:ln 源文件 目标文件

    软连接:ln -s 源文件 目标文件(目标文件不能已经存在)

     

    1. 硬链接(hard link) :

    在Linux文件系统中,多个文件名指向同一个索引节点(inode)。这种情况文件就称为硬链接。硬链接文件就相当于文件的另外的一个入口。

    例:

    [root@centos ~]# ls -il ett.txt

    39 -rw-r--r--. 1 root root 292 5月  10 19:58 ett.txt

    [root@centos ~]# ln ett.txt a

    [root@centos ~]# ls -hil ett.txt a

    39 -rw-r--r--. 2 root root 292 5月  10 19:58 a

    39 -rw-r--r--. 2 root root 292 5月  10 19:58 ett.txt

    硬链接知识:

    1. 具有相同inode节点号的多个文件是互为硬链接文件

    2. 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除

    3. 只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除

    4. 当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收

    5. 硬链接文件就是文件的另一个入口

    6. 可以通过给文件设置硬链接文件,来防止重要文件被误删

    7. 通过执行 ln 源文件 硬链接文件 即可创建硬链接文件

    8. 硬链接文件是普通文件,所以可以用rm命令删除

    9. 对应静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link),文件就被删除了。i_link的查看方法:ls -l 第三列的数字就是

    硬链接的限制:

    我们在使用硬链接的同时也需要对硬链接的限制有所了解; 
    1. 不能跨文件系统 
    2. 不能链接到目录

    2.软链接(symbolic link):

    软连接又叫做符号链接,它几乎可以等价于windows下的快捷方式;

    [root@centos ~]# ls -li install.log b

    121 lrwxrwxrwx  1 root root    11 5月  18 15:14 b -> install.log

    13 -rw-r--r--. 1 root root 21712 5月   8 00:06 install.log

     

    软连接的创建:

    软连接:ln -s 源文件 目标文件(目标文件不能已经存在)

    软连接知识:

    1. 软连接类似window的快捷方式(可以通过readiink查看其指向)

    2. 软连接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体

    3. 删除源文件,软连接文件依然存在,但是无法访问指向的源文件路径内容了

    4. 失效的时候一般是白字红底闪烁提示

    5. 执行命令“ln -s 源文件 软连接文件”,即可完成创建软连接(目标不能存在)

    6. 软连接和源文件是不同类型的文件,也是不同的文件,inode号也不相同

    7. 软连接文件的文件类型为(l),可以用rm命令删除

    有关文件的整体总结:

    1.删除软连接,对源文件和硬链接文件都没有影响

    2.删除硬链接,对源文件和软连接文件都没有影响

    3.删除源文件,对硬链接没有印象,但是会导致软连接文件失效,白底红字闪烁

    4.同时删除源文件和硬链接文件,整个文件才会真正的被删除

    5.源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件多个入口

    6.源文件和软连接文件的索引节点号不相同,是不同的文件,软连接文件相当于源文件的快捷方式,含有源文件的位置指向

    有关目录的总结:

    1. 对于目录,不可以创建硬链接,但可以创建软连接

    2. 目录的硬链接不能跨越文件系统

    3. 每个目录下面都有一个硬链接.号,和对应上级目录的硬链接..

    4. 在父目录里面创建一个子目录,父目录的链接数会增加1(子目录里都来指向父目录)

    展开全文
  • 硬链接和符号链接

    2014-04-30 10:03:54
    UNIX目录中有2中类型的链接——硬链接和符号链接。   硬链接本身就是一个目录项,(比如文件名+索引节点号),可以将文件名与文件的位置关联起来; 符号链接也称软链接,是指存储了一个字符串的文件。这个字符串...

    原文转载至:http://keren.blog.51cto.com/720558/170979

    UNIX目录中有2中类型的链接——硬链接和符号链接。
     
    硬链接本身就是一个目录项,(比如文件名+索引节点号),可以将文件名与文件的位置关联起来;
    符号链接也称软链接,是指存储了一个字符串的文件。这个字符串可以在路径名解析的过程中,用于修改路径名。
     
    ----------------------------------------------------
      假设文件是用索引节点来表示的
    ----------------------------------------------------
     
    目录项对应于单个链接,但是一个索引节点可能有几个链接的目标(对应几个目录项),因此索引节点中包含一个对链接到索引节点的链接数的计数。当用open()创建一个新的文件时,操作系统就会创建一个新的目录项,并分配一个空闲的索引节点来表示该文件。
                                                           图 1
    图1显示的就是/dirA下的name1文件的目录项,索引节点为12345,有一个链接,它的第一个数据块为23567。 文件很小,所有内容都包含在一个块中。
     
    (1)创建一个硬链接
    可以使用命令ln或者函数link()为文件创建一个链接。
     
    #include <unistd.h>
    int link( const char *path1, const char *path2 );
     
    上述操作为path1指定的一个已经存在的文件(比如/driA/name1)创建一个新的目录项,这个文件位于path2指定的目录下(比如/driB/name2);并增加相应的索引节点链接计数,不再使用额外的磁盘空间。
    如图2:
                                                     图 2
    (2) 创建一个符号链接
    符号链接是一个包含了另一个文件或目录名字的文件。引用符号链接的名字会使操作系统去定位对应于那个链接的索引节点,知道最终遇到一个硬间接和一个真正的文件为止。如果过了一段时间,系统没有找到文件,则放弃并返回ELOOP错误。
     
    使用ln命令带选项-s 或者函数symlink(),都可以创建符号链接。
     
    #include <unistd.h>
    int symlink ( const char *path1, const char *path2);
     
    这里path2是新创建的链接,新链接指向path1 。如图3:
                                                                           图 3
     
    这里,符号链接使用了一个新的索引节点(13579),该索引节点包含了说明它是一个符号链接的信息。符号链接至少需要一个数据块(如15213),数据块中包含了/dirB/name2要链接的文件名称,这里即为/dirA/name1。

    展开全文
  • 硬链接符号链接 符号链接就是一个实实在在的文件,它指向目录中的一个文件。(就是一个文件指向另一个文件)类似windows下面的快捷键 当被指向的文件删除之后,就会见到在windows中的现象一样,打不开文件...

    文件链接在linux分为两种

    ① 符号链接
    ② 硬链接

    ① 符号链接

    符号链接就是一个实实在在的文件,它指向目录中的一个文件。(就是一个文件指向另一个文件)类似windows下面的快捷键
    当被指向的文件删除之后,就会见到在windows中的现象一样,打不开文件或者找不到文件。

    在举例之前先来了解一下创建文件链接的命令 ln

    ln

    ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

    语法

    ln [-sf...] 来源文件 目标文件
    

    参数

    -s:如果不加任何参数就进行硬链接(hard link),至于-s 就是符号链接(symbolic  link)
    -f :如果目标文件 存在时,就主动的将目标文件直接移除后再建立
    

    如果想要查看更多参数,请养成使用man的习惯

    在这里插入图片描述

    例1:创建符号链接

    创建symbolicFile文件夹,并创建被链接的文件one以及输入内容
    在这里插入图片描述
    返回上一级目录,创建链接文件 two
    在这里插入图片描述
    查看inode
    在这里插入图片描述
    可见indoe是不同数值,说明两个文件是单独存在的文件。在上图中你会发现连结档的大小为22bytes,这是因为(->)右边的文件名有22个英文字符,一个字符占1个字节,所以22bytes

    图文解释
    在这里插入图片描述
    其中/etc/crontab为本例子中的来源文件one.txt ,->/etc/crontab为连接文件two
    图片来源:《鸟哥的Linux私房菜-基础篇》第四版

    ② 硬链接

    硬链接与符号链接完全不同。硬链接会创建一个虚拟的文件,为什么说它是虚拟文件呐?是因为它和原始的目标文件是同一个文件!“其实是不存在的”。大家知道linux里面所有的东西都是文件,当我们创建一个硬链接时,linux会把你要创建的文件名添加到目录文件里面,并把你要创建的inode数值指向(形象的说)目标文件,这样两个文件的indoe值是一样的。两个文件就是同一个文件,并且属性/权限也是一样的

    例1:创建硬链接
    在root目录下创建three 并连接到symbolicFile文件夹下的one.txt文件上,并查看详情
    在这里插入图片描述
    可以发现两个文件完全一样,不仅inode一样,文件大小、权限也是一样的。在上面你还会发现原本one.txt的链接数量是1(如下图)
    在这里插入图片描述
    现在变成了2,你或许已经明白该字段的意思,就是有多少个文件链接到这个inode号码。在符号链接中该值不会变是因为你创建的符号文件是一个实实在在的文件,它有自己的完整信息。和硬链接不一样。

    图文解释
    在这里插入图片描述
    其中目标/etc/crontab为本例子中的来源文件one.txt ,/root/crontab为three
    图片来源:《鸟哥的Linux私房菜-基础篇》第四版

    最后在使用硬链接的时候,不能跨文件系统和不能链接目录

    声明:参考网站、书籍和命令
    ①:Linux命令大全
    ②:《鸟哥的Linux私房菜-基础篇》第四版
    ③:《Linux命令行与shell脚本编程大全》第三版
    ④:linux man

    展开全文
  • 链接分为符号链接和硬链接 创建方法为: /* 创建硬链接 */ ln ori_file hard_link_name /* 创建符号链接 */ ln -s ori_file symbolic_link_name 硬链接 创建的硬链接和原来文件共享一个 inode 节点。inode 节点...

    Linux 中链接用于建立文件系统对象之间的关系。链接分为符号链接和硬链接

    硬链接

    创建的硬链接和原来文件共享一个 inode 节点。inode 节点含有一个 i_nlink 计数器,记录使用该 inode 的硬链接的总数。Linux 中文件内容实际与 inode 一一对应,原来的文件就相当于一个硬链接。所以硬链接和原来文件不存在质的区别。
    删除一个硬链接是只会使 i_nlink 数量减 1,只有当 i_nlink 等于 0 时,才会删除文件内容。

    缺点:

    1. 硬链接不能跨越文件系统
    2. 硬链接不能指向一个文件夹

    符号链接

    符号链接具有独立的 inode,该 inode 只含有指向文件名的指针,给出了链接目标的路径。当目标文件删除时,符号链接仍然继续保持。符号链接的删除也不会影响目标文件。

    符号链接克服了硬链接的以上缺点。所以倾向于使用符号链接。

    使用方法及测试

    使用方法:

    /* 创建硬链接 */
    ln ori_file hard_link_name
    
    /* 创建符号链接 */
    ln -s ori_file symbolic_link_name
    

    实际测试

    $ ln ori.txt hard_link.txt
    $ ln -s ori.txt symbolic_link.txt
    $ ls -li
    total 8
    1179960 -rw-rw-r-- 2 hello hello 12 Jul  9 00:03 hard_link.txt
    1179960 -rw-rw-r-- 2 hello hello 12 Jul  9 00:03 ori.txt
    1179972 lrwxrwxrwx 1 hello hello  7 Jul  9 00:05 symbolic_link.txt -> ori.txt
    

    硬链接和符号链接的图示

    在这里插入图片描述

    展开全文
  • 链接是linux中表示指向文件的指针,类似与...本文主要列出硬件接和符号链接区别 总结: 硬链接和符号链接可以这样来理解。硬链接相等于一个人的多个全名,而符号链接则相当于人的化名。化名显然没有全名重要。
  • linux 硬链接和符号链接

    千次阅读 2018-07-25 15:44:42
     硬链接和符号链接比起来,硬链接是最初 Unix 创建链接的方式,而符号链接更加现代。在默认情况下,每个文件都有一个硬链接,这个硬链接给文件起名字。当我们创建一个硬链接以后,就为文件创建了一个额外的目录条目。...
  • 摘要目的:硬链接和符号链接在这一节中,我们将通过一个例子来理解Linux中的硬链接和符号链接之间的区别硬链接就像原始文件的镜像副本。这些链接共享相同的inode。对原始文件或硬链接文件所做的更改将反映在tl ...
  • 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。...Linux中包括两种链接:硬链接(Hard Link)软链接(Soft Link),软链接又称为符号链接
  • 一、概念链接:一种对文件的引用,分为硬链接和软链接(符号链接)。索引节点(inode):在Linux系统中,内核为每一个新创建的文件分配一个inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单...
  • 硬链接(hard link)的创建 使用命令(ln 源文件名 新建文件名) 创建 ls -l命令查看当前目录的文件 当前目录下只有hello.c这一个文件文件类型是 - 表明hello.c是普通文件(0 表示hell0o.c文件是空的) 红框中的...
  • 文章目录硬链接硬链接 的两个缺点:符号链接 硬链接 一个文件至少有一个硬链接,因为文件名就是由链接创建的。 可以理解为C++ 中的引用,创建多个名字,链接到同一块文件数据中。 #可以使用命令: ls -li 来查看 ...
  • 硬链接: 1.相同I节点,通过I节点的链接数来确定共享数量。 2.删除文件时,链接数-1,直至链接数为0,才删除文件。 3.由于1.,具有相同I节点,则说明只有一个文件(Linux一个文件有唯一的I节点),省空间。 4.必须在...
  • 文章目录硬链接符号链接读取符号链接本身内容 硬链接 通过命令ln srcfile newfile创建的newfile即为srcfile的硬链接。硬链接的本质,就是一个字符串形式的路径一个整数的i节点号的对应关系。 硬链接的文件内容与...
  • 硬链接的核心是在硬链接所在目录的数据区块中添加一条关联数据:硬链接这个文件的名字inode号(这个inode号是实际数据inode号,改inode号对应实际数据对应的数据区块) 例:使用 ln /etc/crontab /root/crontab ...
  • 硬链接 + 符号链接

    2020-05-16 14:55:46
    文章目录硬链接 + 符号链接1. 概述2. 硬链接3. 符号链接 -->软链接4. 区别5. 总结 硬链接 + 符号链接 1. 概述 Linux下的文件是通过索引节点(inode)来找到文件数据区块block,进而操作具体文件的。如下图,inode...
  • 为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及...
  • 硬链接和符号链接 这里没有介绍它们的功能优点缺点(太多博客已经写过了),主要是解释了它们的原理 出现硬链接和符号链接的原因:我们需要共享文件,如果一个共享文件同时出现在属于不同用户的不同目录下,工作...
  • Linux:创建更改硬链接和符号链接

    千次阅读 2015-01-07 17:40:26
    在本文中,学习如何创建管理硬链接和符号链接。学习: 创建硬链接或软链接 识别链接并了解其类型 理解复制文件与链接文件之间的区别 使用系统管理任务的链接 本文帮助您准备 Linux Professional ...
  • 硬链接符号链接

    2018-09-19 15:26:48
    硬链接 -rw-rw-r–. 1 DS DS 0 Sep 19 14:45 abc 数字代表改文件硬链接的次数 ln target linkname ln abc ./text/abc2 命名创建一个硬链接硬链接次数加1 -rw-rw-r–. 2 DS DS 58892 Sep 19 14:50 abc 用ls - i ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,745
精华内容 18,698
关键字:

硬链接和符号链接区别