300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > linux 磁盘科隆 Linux中ln命令用法详解(硬链接)

linux 磁盘科隆 Linux中ln命令用法详解(硬链接)

时间:2023-02-22 04:41:14

相关推荐

linux 磁盘科隆 Linux中ln命令用法详解(硬链接)

硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和符号链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。

复制代码

用法:ln [选项]… [-T]源文件 链接名 (第一种格式)

或:ln [选项]… 源文件 (第二种格式)

或:ln [选项]… 源文件 … 目录 (第三种格式)

或:ln [选项]… -t 源文件夹 链接名… (第四种格式)

在第一种格式中,创建指定名称的链接且指向指定的源文件。

在第二种格式中,在当前目录创建指向源文件的链接。

在第三、四种格式中,在指定目录中创建指向源文件的链接。

默认创建硬链接,当使用–symbolic 时创建符号链接。

当创建硬链接时文件必须在同一个文件系统,并且不能对目录进行硬链接。符号链接可以指向任意的位置,

选项说明:

–backup[=CONTROL] 为每个已存在的目标文件创建备份文件

-b 类似–backup,但不接受任何参数

-d, -F, –directory 创建指向目录的硬链接(只适用于超级用户,而且有不可预知的风险,慎用哦)

-f, –force 强行删除任何已存在的目标文件

-n, –no-dereference 如果目的地是一个已存在的链接至某目录的符号链接,会将

该符号链接当作普通文件处理,先将该已存在的

链接备份或删除

-i, –interactive 询问是否删除目的地文件

-s, –symbolic 创建符号链接而不是硬链接

-t, –target-directory=目录 在指定目录中创建链接

-T, –no-target-directory 将链接名当作普通文件(在对目录进行符号链接时要用到此选项)

举例:

1.对某个文件创建一个连接

$ln -s /tmp/abc.txt ~/

此命令表示在家目录下创建与源文件同名的链接到/tmp/abc.txt符号连接

$ln -s /tmp/abc.txt ~/abc

/viewthread.php?tid=214812

LINUX LS 建立连接的一些问题总结

/forrestyx/blog/item/5233d1ef3f5a97232df534dd.html

ls 建立的连接分为 软连接和硬连接

1.硬链接文件和原文件指向同样的数据,两者就像科隆一样,inode号也相同,当删除原文件 时,硬链接文件仍然存在有效。但硬链接文件不同于文件的复制。应该说硬链接文件的产生只是原文件所在目录文件的内容发生改变,原文件的数据并没有得到复 制,而复制文件,磁盘上有两份数据。简单说,硬链接就是一个类似于别名的概念。当原来的名字没有了,别名照样可以使用。

认识了硬链接究竟是怎么一回事,理解硬链接的两个限制就容易多了。

(1)不允许给目录创建硬链接;

(2)只有在同一文件系统中的文件之间才能创建链接。

2.软连接和windows系统的快捷方式含义一样,不做多的解释。软链接和原文件的inode不同,该文件的内容是指向原文件的路径信息。软链接就好像是指针一样。而硬链接就是引用。

3.思考:对于文件系统而言,增加一个硬链接文件与增加一个软链接文件,哪种方式将使用的空间多。 当然是软连接

使用:

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

ln -f file1 file2

这会将 file1 链接到新的名称, file2。如果 file2 不存在,那么会创建该文件名。如果 file2 已经存在了,那么这个文件会被替换为指向 file1的一个链接。然后 file1 和 file2 文件名会指向同一个文件。对其中任何一个的更改都会出现在另一个中。如果一个文件名被 rm 命令删除,那么该文件并没有完全被删除,因为它仍然以其它的名字存在。

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

ln index dir1

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

注意:在示例 1 中的 file2 是一个文件的名称;在示例 2 中的 dir1 是一个已经存在的目录。

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

ln file2 dir2/file3 /home/dir1

这会将 file2 链接到新的名称 /home/dir1/file2;将 dir2/file3 链接到新的名称 /home/dir1/file3。

4>如果想要在 ln 命令中使用模式匹配字符,请输入:

ln dir1/* .

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

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

5>为了创建一个符号链接,输入:

ln -s /tmp/test test

这会在当前的目录中创建符号链接 test。 test 文件指向 /tmp/test 文件。如果 /tmp/test 文件已经存在了,那么 cat test 命令可以列出其内容。

6>如果想要在不指明 TargetFile 参数的情况下得到相同的结果,请输入:

ln -s /tmp/test

@@@@问题: 建立连接之后出现error: 连接层数太多(采用相对路径的原因)

解决: 源和目标均采用绝对路径

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。