关于 Linux 下的文件硬链接,文件软链接

<原作:cnmm22:http://blog.csdn.net/cnmm22/article/details/44726539>
这是一个Linux 跟Windows 的区别,以后有空我会介绍一些这方面的区别……&

在Linux 有个链接的功能
,命令是 ln 可以让两个文件或目录(目录只能是软连接)产生关联,或产生一个关联文件或目录。

【所谓硬链接】 比如 ln a.php b    -把 a.php 链接到 b(可以理解为把a 复制一份到b,但其实不是复制,是建了一个别名文件),这个时候 vi 改 a, 再more b 会发现 b 也跟着变了。实际上 改他们其中任意一个另一个都会变。但 rm 删除a ,b 却还在,这其中是因为:创建链接虽然不会完全复制一个文件,但会创建一个指向同一个文件的间接指针,所以删除其中一个, 文件并没有完全被删除,因为它仍然以其它的名字存在。

【所谓软链接】ln后 -s
,如 ln -s a.php b     -其实这就是给a 创建一个快捷方式 b,-s s是symbol 的意思,这时rm a,虽然b还在,但也失效无法打开,需要手动删除b这个空指向(这是硬链接和软链接最直观的区别)。 另外,建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中(相当于要位于 同一个分区 并且 硬链接 不能指向目录。而对软连接,就是所谓符号链接,则可以跨越文件系统,可以软链接目录。

如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示link的路径。



最后引用一些
示例——
 
零、为了创建到一个文件的另一个链接(别名),请输入: 
ln     -f chap1     intro
这会将 chap1 链接到新的名称, intro。如果 intro 不存在,那么会创建该文件名。如果 intro 已经存在了,那么这个文件会被替换为指向 chap1的一个链接。然后 chap1 和 intro 文件名会指向同一个文件。对其中任何一个的更改都会出现在另一个中。如果一个文件名被 rm 命令删除,那么该文件并没有完全被删除,因为它仍然以其它的名字存在。
一、为了将文件链接为另一个目录中的相同名字,请输入: 
ln     index     manual
这会将 index 链接到新的名称,manual/index。

注意:在示例 1 中的 intro 是一个文件的名称;在示例 2 中的 manual 是一个已经存在的目录。
二、为了将几个文件链接为另一个目录中的名称,请输入: 
ln     chap2     jim/chap3     /home/manual
这会将 chap2 链接到新的名称 /home/manual/chap2;将 jim/chap3 链接到新的名称 /home/manual/chap3。
三、如果想要在 ln 命令中使用模式匹配字符,请输入: 
n     manual/* .
这会将 manual 目录中的所有文件链接到当前目录中, . (点),给他们在 manual 目录中同样的名称。

注意: 必须在星号和句点之间输入一个空格。
四、为了创建一个符号链接,输入: 
ln -s /tmp/toc toc
这会在当前的目录中创建符号链接 toc。 toc 文件指向 /tmp/toc 文件。如果 /tmp/toc 文件已经存在了,那么 cat toc 命令可以列出其内容。
五、如果想要在不指明 TargetFile 参数的情况下得到相同的结果,请输入:
、ln -s /tmp/toc  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值