歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux重要概念之軟鏈接和硬連接

Linux重要概念之軟鏈接和硬連接

日期:2017/3/3 11:02:13   编辑:Linux技術

當我們登陸linux系統後,在使用ls –l命令列出目錄下的文件時。有一些文件的顯示格式是如下形式的:

lrwxrwxrwx. 1 root root 7 Jul 25 09:18 rc -> rc.d/rc這是什麼鬼,初次接觸的話,會有種很奇怪的感覺,不知道這個文件為啥跟其它文件顯示形式不一樣。當我們對linux文件類型有所了解之後就會很容易明白這類文件就是所謂的軟鏈接文件。在linux系統中除了像上邊顯示的那樣的軟鏈接文,還有另外一種鏈接叫做硬連接。硬連接如同一個人有連個名字,無論叫哪個名字時,人的各種生理數據都不會發生改變。硬連接也是一樣,它隨源文件內容的增減而發生對應的內容更改。軟鏈接和硬連接的區別:硬連接: 創建硬鏈接會增加額外的記錄項以引用文件 對應於同一文件系統上的一個物理文件 每個文件引用相同的inode 創建時鏈接數遞增 刪除問價時: rm命令遞減計數的鏈接 文件要存在,至少一個鏈接數 當鏈接數為零時,該文件被刪除 不能跨越驅動器或分區 語法:ln filename [linkname]

[root@localhost test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                [root@localhost test]# touch hardlink.txt
                [root@localhost test]# ll
                total 8
                drwxr-xr-x   2 root root 4096 Jul 31 17:56 .
                dr-xr-x---. 27 root root 4096 Jul 31 17:55 ..
                -rw-r--r--   1 root root    0 Jul 31 17:56 hardlink.txt
                [root@localhost test]# ln hardlink.txt hardlink1.txt 
                [root@localhost test]# echo "aaaaaa" > hardlink.txt 
                [root@localhost test]# cat hardlink.txt 
                aaaaaa
                [root@localhost test]# cat hardlink1.txt 
                aaaaaa
                [root@localhost test]# rm hardlink
                rm: cannot remove `hardlink': No such file or directory
                [root@localhost test]# rm hardlink.txt 
                rm: remove regular file `hardlink.txt'? y
                [root@localhost test]# cat hardlink1.txt 
                aaaaaa
                [root@localhost test]#
                [root@localhost test]# mkdir hardlink
                [root@localhost test]# ln hardlink hardlink2
                ln: `hardlink': hard link not allowed for directory
                [root@localhost test]#
軟鏈接: 一個符號鏈接指向另一個文件 ln –s會顯示鏈接的名稱和引用的文件 一個符號鏈接的內容是它引用文件的名稱 目錄也可以進行軟鏈接 可以跨分區 指向的是另一個文件的路徑;其大小為指向的路徑字符串的長度;不增減或減少 目標文件inode的引用計數; 語法:ln -s filename [linkname]
[root@localhost test]# touch symbolic.txt
                [root@localhost test]# mkdir symbolic
                [root@localhost test]# cp -r /tmp/* symbolic
                [root@localhost test]# ln -s symbolic.txt symbolic1.txt
                [root@localhost test]# ln -s symbolic symbolic1
                [root@localhost test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                -rw-r--r--  1 root root    0 Jul 31 18:00 symbolic.txt
                [root@localhost test]# rm -f symbolic.txt 
                [root@localhost test]# ls -l
                total 4
                drwxr-xr-x 10 root root 4096 Jul 31 18:01 symbolic
                lrwxrwxrwx  1 root root    8 Jul 31 18:03 symbolic1 -> symbolic
                lrwxrwxrwx  1 root root   12 Jul 31 18:01 symbolic1.txt -> symbolic.txt
                [root@localhost test]#
總結:從上邊可以看出硬連接文件有兩個限制:1.不允許給目錄創建硬連接;2.只允許在同一個文件系統中的文件之間才能創建鏈接。而軟鏈接沒有上面兩個限制,可以對目錄進行鏈接,同時也可以跨越分區進行鏈接。硬連接源文件刪除,鏈接文件仍然可以使用,軟鏈接源文件刪除,鏈接文件失效。相同點是,僅鏈接文件的刪除,不會影響源文件的內容。 本文出自 “11880696” 博客,轉載請與作者聯系!

Copyright © Linux教程網 All Rights Reserved