Linux下文档之间的链接命令ln与link

众所周知在Linux下我们可以通过ln命令和link命令在不同的文档之间创建连接关系,但这个过程并没有这么简单,比如创建的连接可以是hard link 或者是symbolic link,也可以创建一个目录(Directory)的连接,本文通过对ln 和 link 命令的研究为读者展示Linux下文档之间的链接。

硬链接(Hard Link)

连接的作用是在linux文件系统中把文件名和硬盘上实际的字节联系起来。比如:

echo "hello world! " > test1.txt
ln test1.txt test2.txt

此时用cat命令可以看到:

cat test2.txt
hello world!

当我们在文件系统中建立一个叫做test1的文档的时候,操作系统就把字节写入到磁盘上,并且与外部的一个文件名链接起来。如果我们修改文件名,文件本身的信息并没有改变,只是指向数据的信息改变了。


如果删除其中的任何一个文件名:

rm test1.txt
cat test2.txt
hello world!

link 如果不带任何参数,则作用和ln相同,他们的相同作用都是创立文件名和数据的硬链接,即每一个文件名都独立链接到数据上,所以上文中删除了test2.txt 并不影响test1.txt的存在,这是跟符号链接最不相同的一点。

符号链接(Symbolic Link)

ln -s test1.txt test2.txt

ln还可创建符号链接,如上所示,则文件名test2.txt就是test1.txt的符号链接,test2.txt并没有指向test1.txt指向的数据,而是指向了test1.txt,所以符号链接可以理解成链接的链接。

rm test2.txt
cat test1.txt
cat: test2.txt: No such file or directory

如果删除test1.txt则test2.txt也无法解析。与硬链接不同的是符号链接可以链接不同分区的文档,或者创建目录的链接。

创建目录链接

ln -s /home/a2/test/ file
cd file
cd ..
rm file

通过创立符号链接之后就可以通过链接执行目录命令了,比如cd,需要注意的是这时候如果要用rm命令,则不用家-r参数。利用符号链接可以使非常长的路径名变得便于书写。

ln命令语法详解

ln [OPTION]...  TARGET LINK_NAME

  • -b如果目标文件已经存在,就创建目标文件的备份,例如:
echo "It is a great time" >test2.txt
ln -b test1.txt test2.txt
ls
test1.txt test2.txt test2.txt~
cat test2.txt
hello world!
cat test2.txt~
It is a great time
  • -f如果目标文件存在,就覆盖目标文件:
echo "It is great time">test2.txt
ln -f test1.txt test2.txt
ls
test1.txt test2.txt
cat test2.txt
hello world!

如果目的文档本身是一个链接是,ln命令默认解引用链接:

ln -s test1.txt test2.txt
ln test2.txt test3.txt
rm test2.txt 
cat test3.txt
hello world!
  • -i 链接时询问是否覆盖目标文件
    如过ln命令缺省目标文件,则默认在当前目录创建链接
ln -s ~/test/
ls
test1.txt test

扫描二维码关注公众号,获取今年最新面试资料和电子书文档

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020120123225629.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0REX0RkZGQ=,size_16,color_FFFFFF,t_70#pic_center在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值