<acronym id='9rowg'><em id='9rowg'></em><td id='9rowg'><div id='9rowg'></div></td></acronym><address id='9rowg'><big id='9rowg'><big id='9rowg'></big><legend id='9rowg'></legend></big></address>
    1. <tr id='9rowg'><strong id='9rowg'></strong><small id='9rowg'></small><button id='9rowg'></button><li id='9rowg'><noscript id='9rowg'><big id='9rowg'></big><dt id='9rowg'></dt></noscript></li></tr><ol id='9rowg'><table id='9rowg'><blockquote id='9rowg'><tbody id='9rowg'></tbody></blockquote></table></ol><u id='9rowg'></u><kbd id='9rowg'><kbd id='9rowg'></kbd></kbd>
      <span id='9rowg'></span>
      <i id='9rowg'><div id='9rowg'><ins id='9rowg'></ins></div></i>

      <code id='9rowg'><strong id='9rowg'></strong></code>

      1. <i id='9rowg'></i>
        <ins id='9rowg'></ins>
          <fieldset id='9rowg'></fieldset>

            <dl id='9rowg'></dl>

            Linux中使用ln命令在文件之间建立连接的用法讲解

            • 时间:
            • 浏览:9
            • 来源:124软件资讯网

                在Unix天下里有两个'link'(毗连)观点  ,一样平常称之为硬毗连和软毗连  。一个硬连 接仅仅是一个文件名 。(一个文件可以有好几个文件名  ,只有将最后一个文件名从 磁盘上删除  ,才气把这个文件删掉 。文件名的个数是由ls(1)来确定的  。所有的文件 名都处于统一个状态 ,也就没有什么lq源名字rq 之说  。通常文件系统里的一个 文件的所著名字包罗着一样的数据信息  ,不外这样也不是必须的 。)一个软毗连 (或符号毗连)是完全差别的:它是一个包罗了路径信息的小小的指定文件  。因此 , 软毗连可以指向差别文件系统里的文件(好比由NFS装载的差别机械文件系统上的文 件)  ,甚至可以指向一个纷歧定确实存在的文件  。在软毗连文件被会见(系统挪用 open(2) 或stat(2))的时间  ,操作系统用该文件所包罗的路径替换该文件的会见介 入点 ,从而实现对所指文件的会见  。(用下令rm(1)和unlink(2)可以删除毗连 ,但 不是删除该文件所指向的文件  。系统指定挪用lstat(2)和readlink(2) 来读取毗连 文件与其所指文件的状态  。到底是对软毗连文件操作  ,照旧对被指向文件操作  ,由 于差别操作系统件存在差别的系统挪用  ,而存在着差异 。)

                ln 在文件间发生毗连 。缺省时  ,发生硬毗连  ,有-s选项  ,则发生符号(软)毗连 。

                若是仅仅只给出一个文件名  ,那么ln将在当前目录里发生这个文件的毗连 , 也就是说  ,以该文件(的最后一个)名称等同的名字在当前目录里发生一个毗连 (GNU规模内); 若是最后一个参数是一个已存在的目录名 , ln 将在谁人目录里给每一个源文件用以与源文件相同的文件名发生毗连  , (差别情形见以下--no-dereference的形貌); 若是只给出两个文件名 ,ln将发生源文件的毗连; 若是最后一个参数不是一个目录名或多于两个文件名  ,则报错 。

                缺省时  ,ln不删除已存在的文件或符号毗连  。 (因此  ,它可以被用来锁定目的文件 ,即当dest已经不存在时) 但选项-f可以强制执行  。

                在已存在的实现中 ,只有超级用户才气建设目录的硬毗连  。 POSIX 克制系统挪用link(2)和ln建设目录的硬毗连 (可是允许在差别的文件系统间建设硬毗连)  。

                使用方式 : ln [options] source dist ,其中 option 的花样为 :

                [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}][--help] [--version] [--]

                说明 : Linux/Unix 档案系统中 ,有所谓的连结(link)  ,我们可以将其视为档案的别名 ,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link)  ,硬连结的意思是一个档案可以有多个名称  ,而软连结的方式则是发生一个特殊的档案  ,该档案的内容是指向另一个档案的位置  。硬连结是存在统一个档案系统中  ,而软连结却可以跨越差别的档案系统  。

                ln source dist 是发生一个连结(dist)到 source ,至于使用硬连结或软链结则由参数决议  。

                岂论是硬连结或软链结都不会将原本的档案复制一份 ,只会占用很是少量的磁碟空间  。

                -f : 链结时先将与 dist 同档名的档案删除

                -d : 允许系统治理者硬链结自己的目录

                -i : 在删除与 dist 同档名的档案时先举行询问

                -n : 在举行软连结时 ,将 dist 视为一样平常的档案

                -s : 举行软链结(symbolic link)

                -v : 在连结之前显示其档名

                -b : 将在链结时会被覆写或删除的档案举行备份

                -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾

                -V METHOD : 指定备份的方式

                --help : 显示辅助说明

                --version : 显示版本

                注重:

                若是不使用 -s 标志  ,就不能在文件系统之间链接文件 。

                若是 TargetDirectory 已经是链接到目录上的一个符号链接  ,那么 ln 下令将现有的目的视为文件  。这意味着 ,类似于 ln -fs somepath/lname symdir 的下令不会遵照现有的 symdir 符号链接 ,作为取代  ,它会建立一个从 somepath/lname 到 symdir 的新的符号链接  。

                退出状态

                此下令返回以下的退出值:

                0 所有指定的文件都乐成链接上了  。

                >0 泛起一次错误  。

                例:

                代码如下:

                [root@localhost test_ln]# ln -s /home/zhangy/heartbeat ./ #在当前目录下 ,建设heartbeat的软毗连

                [root@localhost test_ln]# ln -s /home/zhangy/test ./ #建设目录的软件

                [root@localhost test_ln]# ln /home/zhangy/tee.txt ./ #建设硬毗连

                [root@localhost test_ln]# ll

                总计 4

                lrwxrwxrwx 1 root root 22 05-11 11:04 heartbeat -> /home/zhangy/heartbeat #文件软件接

                -rw-r--r-- 2 root root 0 2010-11-24 tee.txt #文件硬毗连

                lrwxrwxrwx 1 root root 17 05-11 11:04 test -> /home/zhangy/test #目录软件接

                1.为了建立到一个文件的另一个链接(别名) ,请输入:

                代码如下:

                ln -f chap1 intro

                这会将 chap1 链接到新的名称  , intro 。若是 intro 不存在 ,那么会建立该文件名 。若是 intro 已经存在了  ,那么这个文件会被替换为指向 chap1的一个链接  。然后 chap1 和 intro 文件名会指向统一个文件  。对其中任何一个的更改都市泛起在另一其中  。若是一个文件名被 rm 下令删除  ,那么该文件并没有完全被删除  ,由于它仍然以其它的名字存在  。

                2.为了将文件链接为另一个目录中的相同名字 ,请输入:

                代码如下:

                ln index manual

                这会将 index 链接到新的名称  ,manual/index  。

                注重:在示例 1 中的 intro 是一个文件的名称;在示例 2 中的 manual 是一个已经存在的目录 。

                3.为了将几个文件链接为另一个目录中的名称  ,请输入:

                代码如下:

                ln chap2 jim/chap3 /home/manual

                这会将 chap2 链接到新的名称 /home/manual/chap2;将 jim/chap3 链接到新的名称 /home/manual/chap3  。

                4.若是想要在 ln 下令中使用模式匹配字符  ,请输入:

                代码如下:

                ln manual/* .

                这会将 manual 目录中的所有文件链接到当前目录中 , . (点)  ,给他们在 manual 目录中同样的名称 。

                注重: 必须在星号和句点之间输入一个空格  。

                5.为了建立一个符号链接  ,输入:

                代码如下:

                ln -s /tmp/toc toc

                这会在当前的目录中建立符号链接 toc 。 toc 文件指向 /tmp/toc 文件  。若是 /tmp/toc 文件已经存在了 ,那么 cat toc 下令可以列出其内容  。

                6.若是想要在不指明 TargetFile 参数的情形下获得相同的效果  ,请输入:

                代码如下:

                ln -s /tmp/toc