当前位置: 首页 > web >正文

ln 命令用法 hard link 与 symbolic link 区别 分析

    Hard Link (实体链接, 硬式连接)

    首先要知道inode。它就像一个指向档案的指针,档案的内容由inode的记录来指向。所以读取一个档案内容可以有多个文件名对应一个文件的inode号码,这就是hard link。

   举个例子来说,假如我系统有个 /root/crontab 他是 /etc/crontab 的实体链接,也就是说这两个文件名连结到同一个 inode , 自然这两个文件名的所有相关信息都会一模一样(除了文件名之外)。实际的情况可以如下所示:


[root@localhost fsy]# ln /etc/crontab . <==建立实体链接的命令,第一个参数为原连接的地方,第二个参数为创建连接的地方。
[root@localhost fsy]# ll -i /etc/crontab /root/crontab
45949 -rw-r--r--. 2 root root 451  2月  8 2011 /etc/crontab
45949 -rw-r--r--. 2 root root 451  2月  8 2011 /root/crontab

    可以发现两个文件名都连结到 45949 这个 inode 号码。 因为这两个文件名其实指向的是同一个地址。第二个字段由1变为2了。这个字段称为“连结”,即有多少个文件名连接到这个inode上,有多少个文件指针指向这个存储地址。所以将任何文件名删除,inode与block都还是存在的。一般说来,使用hard link设定链接文件时,磁盘的空间与inode的数目都不会改变。hard link 不能跨Filesystem,也不能link目录。

  Symbolic Link (符号链接,亦即是快捷方式)

  相对于 hard link , Symbolic link 可就好理解多了,基本上, Symbolic link 就是在建立一个独立的文件,而这个文件会让数据的读取指向它link的文件名。由于只是用来作指向,所以当来源文件被删除后,symbolic link 的文件就会打不开了。可以理解为它是一个指向文件地址指针的指针。当它指向的指针没有了,自然也就不能用了。

范例一:将 /etc/passwd 复制到 /tmp 底下,并观察 inode 与 block
[root@www ~]# cd /tmp
[root@www tmp]# cp -a /etc/passwd .
[root@www tmp]# du -sb ; df -i .
18340 . <==先注意一下这里的容量是多少!
Filesystem    Inodes    IUsed    IFree    IUse%  Mounted on
/dev/hdc2    2560864 149738 2411126    6% /

# 利用 du 不 df 来检查一下目前的参数 du -sb 计算整个 /tmp 底下有多少 bytes 的容量


范例二:将 /tmp/passwd 制作 hard link 成为 passwd-hd 档案,并观察档案容量
[root@www tmp]# ln passwd passwd-hd
[root@www tmp]# du -sb ; df -i .
18340 .
Filesystem   Inodes IUsed IFree IUse% Mounted on
/dev/hdc2    2560864 149738 2411126    6% /
# 仔细看,即使多了一个档案在 /tmp 底下,整个 inode 与 block 的容量并没有改变!
[root@www tmp]# ls -il passwd*
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd-hd

# 指向同一个 inode。另外,那个第二个的连结数也会增加


范例三:将 /tmp/passwd 建立一个符号链接
[root@www tmp]# ln -s passwd passwd-so
[root@www tmp]# ls -li passwd*
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd
586361 -rw-r--r-- 2 root root 1945 Sep 29 02:21 passwd-hd
586401 lrwxrwxrwx 1 root root 6 Oct 22 14:18 passwd-so -> passwd
# passwd-so 指向的 inode number 不同了!这是一个新的档案~这个档案的内容是指向
# passwd 的。passwd-so 的大小是 6bytes ,因为 passwd 共有六个字符
[root@www tmp]# du -sb ; df -i .
18346 .
Filesystem  Inodes    IUsed  IFree  IUse%  Mounted on
/dev/hdc2   2560864 149739 2411125   6% /

# 整个容量与 inode 使用数都改变了


范例四:删除源文件 passwd ,其他两个档案是否能够开启?
[root@www tmp]# rm passwd
[root@www tmp]# cat passwd-hd
......正常显示完毕!
[root@www tmp]# cat passwd-so
cat: passwd-so: No such file or directory
[root@www tmp]# ll passwd*
-rw-r--r-- 1 root root 1945 Sep 29 02:21 passwd-hd
lrwxrwxrwx 1 root root
6 Oct 22 14:18 passwd-so -> passwd
# 符号链接无法开启。另外,如果符号链接的目标档案不存在,是会有特殊颜色的





http://www.xdnf.cn/news/11307.html

相关文章:

  • 搜狗云输入法、Google手机语音搜索:两款创新云产品
  • IOCP的一些总结
  • linux串口驱动
  • 2020年12月统考练习题
  • 电脑蓝屏代码大全及解决办法合集
  • Linux系统移植
  • GB2312汉字拼音对照表
  • 星三角正反接线实物图_两个老电工的星三角之争,大家都来评评理!
  • html滚动条样式
  • 按键精灵
  • MSNLite v3.0正式版
  • 《Xenogears》(异度装甲)隐含的原型与密码
  • 最全性能测试 —— 性能测试概念、性能测试主流工具!,2024年最新IDEA太强悍了
  • 除了 P 站,程序员摸鱼还喜欢上哪些网站?
  • Jmeter 性能 —— 50TPS与秒杀达到多少人!_jmeter压测吞吐量最高50左右
  • 最新闲鱼小众蓝海虚拟资源,单号日入300+,三天必起店,矩阵放大月入1-2W
  • Android手机SD卡分区
  • 事件对象以及常见属性
  • 制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面
  • XMLHttpRequest 异步方式和同步方式
  • 如何在默认打开方式中去掉已失效或者已删除的应用选项
  • C++实现11平台魔兽全图外挂
  • oracle exits 的用法,oracle中的exists和not exists和in用法详解
  • Windows Live Messenger (MSN) 9.0 错误代码 80040154 解决
  • linux源代码存放在哪个目录_Linux 各目录详细介绍
  • Android 设置边距总结
  • 使用c语言实现传输的流量控制
  • 大数的四则运算-(加法、减法、乘法、除法)
  • 高通 MSM 8916与MSM8926芯片的区别
  • 磁盘文件系统Fat、Fat32、NTFS、exFAT的优缺点