码迷,mamicode.com
首页 > 其他好文 > 详细

连结档

时间:2015-05-14 18:16:28      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

连结档

连结档有点类似 Windows 底下的『快捷方式』!也就是很多的连结档案( link file )其实都指向同一个来源档案( source file )。

连结档还分成 Hard link 与 symbolic link 两种

[root@linux ~]# ln [-sf] 来源文件 目标文件 
参数: 
-s :如果 ln 不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link 
-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立! 
范例: 
范例一:将 /etc/passwd 复制到 /tmp 底下,并且观察 inode 与 block 
[root@linux ~]# cd /tmp 
[root@linux tmp]# cp -a /etc/passwd . 
[root@linux tmp]# du -sb ; df -i . 
26948 . <== 先注意一下,这里的容量是多少! 
Filesystem Inodes IUsed IFree IUse% Mounted on 
/dev/hda1 1537088 144016 1393072 10% / 
# 利用 du 与 df 来检查一下目前的参数~那个 du -sb 
# 是计算整个 /tmp 底下有多少 bytes 的容量啦! 
范例二:将 /tmp/passwd 制作 hard link 成为 passwd-hd 档案 
[root@linux tmp]# ln passwd passwd-hd 
[root@linux tmp]# du -sb ; df -i . 
26948 . 
Filesystem Inodes IUsed IFree IUse% Mounted on 
/dev/hda1 1537088 144016 1393072 10% / 
# 仔细看,即使多了一个档案在 /tmp 底下,整个 inode 与 block 的容量并没有改变! 
[root@linux tmp]# ls -il passwd* 
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd 
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd-hd 
# 原来是指向同一个 inode 啊!这是个重点啊!另外,那个第二栏的连结数也会增加! 
范例三:将 /tmp/passwd 建立一个符号连结 
[root@linux tmp]# ln -s passwd passwd-so 
[root@linux tmp]# ls -li passwd* 
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd 
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd-hd 
1242806 lrwxrwxrwx 1 root root 6 Jul 23 20:02 passwd-so -> passwd 
# 仔细看喔,这个 passwd-so 指向的 inode number 不同了!这是一个新的档案~ 
# 这个档案的内容是指向 passwd 的,你可以看到这个档案的大小,是 6bytes , 
# 怎么来的?因为 passwd 共有六个字符啊!哈哈!没错~这个连结档的内容只是填写 
# 连结的目标档案文件名而已!所以,你的连结档档名 (有时候含路径) 有多长,档案就多大! 
[root@linux tmp]# du -sb ; df -i . 
26954 . 
Filesystem Inodes IUsed IFree IUse% Mounted on 
/dev/hda1 1537088 144017 1393071 10% / 
# 呼呼!整个容量与 inode 使用数都改变啰~确实如此啊! 
范例四:删除源文件 passwd ,其它两个档案是否能够开启? 
[root@linux tmp]# rm passwd 
[root@linux tmp]# cat passwd-hd 
......正常显示完毕! 
[root@linux tmp]# cat passwd-so 
cat: passwd-so: No such file or directory 
# 怕了吧?!竟然无法正常的开启这个档案呢~ 

        使用 ln 如果不加任何参数的话,那么就是 Hard Link

        如果 ln 使用 -s 的参数时,就做成差不多是 Windows 底下的『快捷方式』的意思( Symbolic Link,较常用! )。当你修改 Linux 下的 link 档案时,则更动的其实是『原始档』, 所以不论你的这
个原始档被连结到哪里去,只要你修改了连结档,原始档就跟着变啰!

 root@ubuntu:/usr/local# ln -s /usr/local/mysql-5.6.11-linux-glibc2.5-i686/ mysql

连结档

标签:

原文地址:http://www.cnblogs.com/zhuiluoyu/p/4503631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!