连结档
连结档有点类似 Windows 底下的『快捷方式』!也就是很多的连结档案( link file )其实都指向同一个来源档案( source file )。
连结档还分成 Hard link 与 symbolic link 两种
[[email protected] ~]# ln [-sf] 来源文件 目标文件 参数: -s :如果 ln 不加任何参数就进行连结,那就是 hard link,至于 -s 就是 symbolic link -f :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立! 范例: 范例一:将 /etc/passwd 复制到 /tmp 底下,并且观察 inode 与 block [[email protected] ~]# cd /tmp [[email protected] tmp]# cp -a /etc/passwd . [[email protected] 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 档案 [[email protected] tmp]# ln passwd passwd-hd [[email protected] tmp]# du -sb ; df -i . 26948 . Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda1 1537088 144016 1393072 10% / # 仔细看,即使多了一个档案在 /tmp 底下,整个 inode 与 block 的容量并没有改变! [[email protected] 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 建立一个符号连结 [[email protected] tmp]# ln -s passwd passwd-so [[email protected] 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 共有六个字符啊!哈哈!没错~这个连结档的内容只是填写 # 连结的目标档案文件名而已!所以,你的连结档档名 (有时候含路径) 有多长,档案就多大! [[email protected] tmp]# du -sb ; df -i . 26954 . Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda1 1537088 144017 1393071 10% / # 呼呼!整个容量与 inode 使用数都改变啰~确实如此啊! 范例四:删除源文件 passwd ,其它两个档案是否能够开启? [[email protected] tmp]# rm passwd [[email protected] tmp]# cat passwd-hd ......正常显示完毕! [[email protected] tmp]# cat passwd-so cat: passwd-so: No such file or directory # 怕了吧?!竟然无法正常的开启这个档案呢~
使用 ln 如果不加任何参数的话,那么就是 Hard Link
如果 ln 使用 -s 的参数时,就做成差不多是 Windows 底下的『快捷方式』的意思( Symbolic Link,较常用! )。当你修改 Linux 下的 link 档案时,则更动的其实是『原始档』, 所以不论你的这
个原始档被连结到哪里去,只要你修改了连结档,原始档就跟着变啰!
[email protected]:/usr/local# ln -s /usr/local/mysql-5.6.11-linux-glibc2.5-i686/ mysql
时间: 2024-11-03 02:35:22