标签:
连结档有点类似 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