Linux软链接和硬链接

软链接

软链接类似于Windows的快捷方式, 通过这种方式, 快速的访问到对应的文件或目录

软链接的创建

ln -s oldfile slink
//
[white@WhiteCloud file]$ ll
drwxrwxr-x 2 white white 4096 Dec 10 17:09 test
-rw-rw-r-- 1 white white 1546 Feb 18 14:28 test.cc

[white@WhiteCloud file]$ ln -s test.cc softLink
                         //这便是软连接的创建, 之后, 你可以随意操作该软链接, 访问, 删除都是可以的

[white@WhiteCloud file]$ ll
lrwxrwxrwx 1 white white    7 Feb 18 14:35 softLink -> test.cc
drwxrwxr-x 2 white white 4096 Dec 10 17:09 test
-rw-rw-r-- 1 white white 1546 Feb 18 14:28 test.cc

使用注意

  • 软链接就像一个快捷方式, 所能提供的功能就是直接对所指向的文件进行访问
  • 当删除了软链接所指向的文件实体后, 软链接就会失效, 变为死链接
  • 软链接对文件进行操作需要和之前的操作方式一致
  • 软链接可以跨越文件系统进行, 如果当前文件系统不足, 可以通过软链接进入别的文件系统, 扩充存储

硬链接

硬链接是对指定文件inode的一个拷贝版本

在这里做一个比喻:

  • 带入到程序中 ,软链接可以看做是指向栈区元素的指针,栈区元素删除了, 软链就失效了, 因为指针不能指向一个无效的位置
  • 同理, 带入到程序中, 硬链接可以看做是执行一个堆区开辟的对象, 栈区保存的永远是一个指针, 通过指针进行堆区的访问, 这个指针不论有多少份, 删除了多少份, 只要有一个, 就能找到对应堆区的数据.

硬链接的创建

ln oldfile hLink
[white@WhiteCloud file]$ ll
drwxrwxr-x 2 white white 4096 Dec 10 17:09 test
-rw-rw-r-- 1 white white 1546 Feb 18 14:28 test.cc

[white@WhiteCloud file]$ ln test.cc hardLink
                         //此处便是硬链接的创建
[white@WhiteCloud file]$ ll
-rw-rw-r-- 2 white white 1546 Feb 18 14:28 hardLink
drwxrwxr-x 2 white white 4096 Dec 10 17:09 test
-rw-rw-r-- 2 white white 1546 Feb 18 14:28 test.cc

使用注意

  • 硬链接只能指向文件, 不能指向目录
  • 删除硬链接时, 会将该文件的硬链接数减一, 当硬链接数为0的时候, 该文件就会被删除
  • 为了保证重要的文件不被误删, 可以采用硬链接, 保存至少一份硬链接, 操作其余硬链接, 起到保护文件的目的
  • 硬链接只能在同一个文件系统下进行使用, 如果更改文件系统, inode就会变化, 而基于inode所做的硬链接就会错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值