linux基础命令之ln

ln:连接文件

在linux下面的连接文件有两种,一种是类似windows的快捷方式的软连接(symbolic link),可以让你快速连接到目标文件;另一种则是通过文件系统的inode连接来产生新文件名,而不是产生新文件,这种称为硬链接(hard link)。

hard link:

    在某个目录下新建一条文件名连接到某inode号码的关联记录。

    举个例子:

    [root@www ~]# ln  /etc/crontab .

    [root@www ~]# ll -i /etc/crontab /root/crontab

    1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /etc/crontab

    1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /root/crontab

    这两个你可通过任意一个去读取最终数据。这么做有什么好处呢?最大的好处就是“安全”;如果你将任何一个“文件名”删除,其实inode与block都还是存在的。此时你可以通过另一个“文件名”来读取正确的文件数据。此外,不论你使用哪个“文件名”来编辑,最终的结果都会写入到相同的inode与block中,因此均能进行数据的修改。

    一般来说,使用hard link设置连接文件时,磁盘的空间与inode的数目都不会改变。hard link只是在某个目录下的block多谢如一个关连数据而已,既不会增加inode也不会消耗block数量。

但hard link是有限制的:

    1、不能跨文件系统

    2、不能连接目录

symbolic link

    相对于hard link,symbolic link可就好理解多了,基本上,symbolic link就是在创建一个独立的文件,而这个会让数据的读取指向它连接的那个文件的文件名。由于只是利用文件来作为指向的操作,所以,当源文件被删除之后,symbolic link的文件会“开不了”,会一直说“无法打开某文件”。

示例:

[root@www ~]# ln -s /etc/crontab crontab2

[root@www ~]# ll -i /etc/crontab /root/crontab2

1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /etc/crontab

 654687 lrwxrwxrwx 1 root root 12 Oct 22 13:58 /root/crontab2 ->/etc/crontab

#在连接文件的末尾会写上目标文件的“文件名”

特别留意,这个symbolic link 与 Windows的快捷方式可以划上等号,由symbolic link所创建的文件为一个独立的新的文件,所以会占用掉inode和block

三、ln的详细用法

命令格式:

    ln    [参数]    源文件    目标文件

参数:

-s:如果不加任何参数就进行连接,那就是hard link,至于 -s 就是symbolic link

-f:如果目标文件存在时,就主动将目标文件直接删除后再创建。

范例前面都有简单的示例,就不再举例了;

四、关于连接数量

当新建一个目录时,新的目录的连接数为2,而上层目录的连接数则会增加1,请看举例:

[root@www ~]# ls -ld /tmp

drwxrwxrwt 5 root root 4096 Oct 22 14:22 /tmp

[root@www ~]# mkdir /tmp/testing1

[root@www ~]# ls -ld /tmp

drwxrwxrwt 6 root root 4096 Oct 22 14:37 /tmp

[root@www ~]# ls -ld /tmp/testing1

drwxr-xr-x 2 root root 4096 Oct 22 14:37 /tmp/testing1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值