ln命令

转载  https://blog.youkuaiyun.com/qq_21792169/article/details/51063924

 

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

复制代码

 

mkdir /dev/snd
cd /dev/snd/
ln -s /dev/controlC0 
ln -s /dev/pcmC0D0p 
ln -s /dev/pcmC0D0c

 

用法: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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值