Hard Links:node
不能跨 filesystem ,由於不一樣的 filesystem 有不一樣的inode table 嘛!linux
不能 link 目錄!安全
Symbolic Links:less
語法:[root @test/root ]# ln [-s] [來源檔] [目的檔]
參數說明:
-s :提供連結檔的連結!若是直接以 ln 不加任何參數的話,那麼就屬於 hard link囉!
範例:
[root @test/root]# mkdir test
[root @test/root]# cd test
[root @test/test]# cp /usr/bin/passwd .0. 本來的信息:
[root @test/test]# ll
-rw-r--r--1root root 13476 Jun 26 11:31 passwd
[root @test/test]# du -k<==查看該目錄下的佔用硬盤空間
20ide1. Hard Link信息:
[root @test/test]# ln passwd passwd-hard
[root @test/test]# ll
total 32
-rw-r--r--2root root 13476 Jun 26 11:31 passwd
-rw-r--r--2root root 13476 Jun 26 11:31 passwd-hard
注意看,上面那個數字變成2 囉!這就是佔用掉 inodes 囉!
[root @test/test]# du -k
20 <==注意看,容量並無變大!由於是link 檔案呀!測試2. SymbolicLink 信息:
[root @test/test]# ln -s passwd passwd-soft; ll
-rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd
-rw-r--r-- 2 root root 13476 Jun 26 11:31 passwd-hard
lrwxrwxrwx 1 root root 6 Jun 26 11:37 passwd-sofe -> passwd
注意囉!該Symbolic Link 的檔案是有容量的呦!
注意囉, passwd-soft會指到另一個檔案去,並且,最前面屬性顯示 l ,
此外,他是一個獨立的檔案!先殺掉passwd 後,咱們分別 more 一下內容:rem3. 用 more 來試試看是怎樣?!
說明:
[root @testtest]# rm passwd
rm: removeregular file `passwd'? y
[root @testtest]# more passwd-hard
………(正常顯示)
[root @testtest]# more passwd-soft
passwd-soft:No such file or directory同步
要注意囉!若是不加任何參數的話,那麼就是 Hard Link 囉!如同上面的狀況,增長了hard link 以後,能夠發現 link 那一欄屬性增長了!而若是這個時候砍掉 passwd會發生什麼事情呢?呵呵! passwd-hard 的內容仍是會跟原來 passwd 相同,可是passwd-soft 就會找不到該檔案啦!就是這樣!瞭解了嗎?!還有,跟 cp 也不同呦!由於雖然Hard Link 的檔案看起來是有容量的,可是基本上仍是指向原來的檔案,因此囉,總體容量是沒有增大的啦!
而若是使用 -s 的參數時,就作成差很少是 Windows 底下的『快捷方式』的意思(SymbolicLink,較經常使用!)不過,須要特別注意的是, Linux 的 link 與 Windows 的快捷方式是不同的東西!舉個例子說,當你在Windows 創建一個快捷方式時,你能夠在這個快捷方式內修改任何數據,而你的原始數據並不會跟着變!不過,當你修改Linux 下的 link 檔案時,則更動的實際上是『原始檔』,呵呵,因此不論你的這個原始檔被連結到哪裏去,只要你修改了連結檔,呵呵!原始檔就跟着變囉!以上面爲例,因爲你使用-s 的參數創建一個名爲 passwd-soft 的檔案,則你修改 passwd-soft 時,其內容與passwd 徹底相同,而且,當你按下儲存以後,被改變的將是 passwd 這個檔案!
此外,若是你作了底下這樣的連結:ln –s /bin /root/bin那麼若是你進入 /root/bin 這個目錄下,『請注意呦!該目錄實際上是 /bin 這個目錄,由於你作了連結檔了!』因此,若是你進入/root/bin 這個剛剛創建的連結目錄,而且將其中的數據殺掉時,嗯! /bin 裏面的數據就統統不見了!這點請千萬注意!並非/root 底下的資料都是 root 的!還須要注意一下該屬性才行!
基本上, Symbolic link 的用途比較廣,因此您要特別留意 symbolic link的用法呢!將來必定還會經常用到的啦!
ln是 linux中又一個很是重要 命令,它的功能是爲某一個文件在另一個位置創建一個同不的連接,這個 命令最經常使用的參數是-s,具體用法是: ln –s 源文件 目標文件。
當咱們須要在不一樣的目錄,用到相同的文件時,咱們不須要在每個須要的目錄下都放一個必須相同的文件,咱們只要在某個固定的目錄,放上該文件,而後在其它的目錄下用 ln 命令連接(link)它就能夠,沒必要重複的佔用磁盤空間。例如: ln –s /bin/less/usr/local/bin/less
-s 是代號(symbolic)的意思。
這裏有兩點要注意:第一, ln 命令會保持每一處連接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發生相同的變化;第二, ln的連接又軟連接和硬連接兩種,軟連接就是 ln –s ** **,它只會在你選定的位置上生成一個文件的鏡像,不會佔用磁盤空間,硬連接 ln ****,沒有參數-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,不管是軟連接仍是硬連接,文件都保持同步變化。
若是你用ls察看一個目錄時,發現有的文件後面有一個@的符號,那就是一個用 ln 命令生成的文件,用ls –l 命令去察看,就能夠看到顯示的link的路徑了。
指令詳細說明
指令名稱 : ln
使用權限 : 全部使用者
使用方式 : ln [options] source dist,其中 option 的格式爲 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明 : Linux/Unix 檔案系統中,有所謂的連結(link),咱們能夠將其視爲檔案的別名,而連結又可分爲兩種 : 硬連結(hardlink)與軟連結(symboliclink),硬連結的意思是一個檔案能夠有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另外一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻能夠跨越不一樣的檔案系統。
ln source dist 是產生一個連結(dist)到 source,至於使用硬連結或軟鏈結則由參數決定。
不管是硬連結或軟鏈結都不會將本來的檔案複製一份,只會佔用很是少許的磁碟空間。
-f : 鏈結時先將與 dist 同檔名的檔案刪除
-d : 容許系統管理者硬鏈結本身的目錄
-i : 在刪除與 dist 同檔名的檔案時先進行詢問
-n : 在進行軟連結時,將 dist 視爲通常的檔案
-s : 進行軟鏈結(symbolic link)
-v : 在連結以前顯示其檔名
-b : 將在鏈結時會被覆寫或刪除的檔案進行備份
-S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾
-V METHOD : 指定備份的方式
--help : 顯示輔助說明
--version : 顯示版本
範例 :
將檔案 yy 產生一個 symbolic link : zz
ln -s yy zz
將檔案 yy 產生一個 hard link : zz
ln yy xx