1 . 使用方式 :ln [option] source_file dist_file (source_file是待建立鏈接文件的文件,dist_file是新創(chuàng)建的鏈接文件)
創(chuàng)新互聯(lián)建站主要為客戶提供服務(wù)項目涵蓋了網(wǎng)頁視覺設(shè)計、VI標(biāo)志設(shè)計、全網(wǎng)營銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式網(wǎng)站建設(shè)、成都做手機(jī)網(wǎng)站、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)公司、WEB系統(tǒng)開發(fā)、域名注冊、國內(nèi)外服務(wù)器租用、視頻、平面設(shè)計、SEO優(yōu)化排名。設(shè)計、前端、后端三個建站步驟的完善服務(wù)體系。一人跟蹤測試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都封陽臺行業(yè)客戶提供了網(wǎng)站設(shè)計服務(wù)。
-f 建立時,將同檔案名刪除.
-i 刪除前進(jìn)行詢問.
ln -s abc cde 建立abc 的軟連接
ln abc cde 建立abc的硬連接,
對于一個文件來說,有唯一的索引接點與之對應(yīng),而對于一個索引接點號,卻可以有多個文件名與之對應(yīng)。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問該文件。注意在Linux下是一切皆文件的啊,文件夾、新加的硬盤 ...都可以看著文件來處理的啊。
連接有軟連接和硬連接(hard link)之分的,軟連接(symbolic link)又叫符號連接。符號連接相當(dāng)于Windows下的快捷方式。
不可以對文件夾建立硬連接的,我們通常用的還是軟連接比較多。
eg:
ln -s source dist # 建立軟連接
ln source dist # 建立硬連接
軟鏈接實際上只是一段文字,里面包含著它所指向的文件的名字,系統(tǒng)看到軟鏈接后自動跳到對應(yīng)的文件位置處進(jìn)行處理;相反,硬聯(lián)接為文件開設(shè)一個新的目錄 項,硬鏈接與文件原有的名字是平權(quán)的,在Linux看來它們是等價的。由于這個原因,硬鏈接不能連接兩個不同文件系統(tǒng)上的文件。
(1)軟連接可以 跨文件系統(tǒng) ,硬連接不可以 。實踐的方法就是用共享文件把windows下的 aa.txt文本文檔連接到linux下/root目錄 下 bb,cc . ln -s aa.txt /root/bb 連接成功 。ln aa.txt /root/bb 失敗 。
(2)關(guān)于 I節(jié)點的問題 。硬連接不管有多少個,都指向的是同一個I節(jié)點,會把 結(jié)點連接數(shù)增加,只要結(jié)點的連接數(shù)不是 0,文件就一直存在,不管你刪除的是源文件還是 連接的文件 。只要有一個存在 ,文件就 存在 (其實也不分什么源文件連接文件的 ,因為他們指向都是同一個 I節(jié)點)。 當(dāng)你修改源文件或者連接文件任何一個的時候 ,其他的文件都會做同步的修改。軟鏈接不直接使用i節(jié)點號作為文件指針,而是使用文件路徑名作為指針。所以 刪除連接文件 對源文件無影響,但是刪除源文件,連接文件就會找不到要指向的文件 。軟鏈接有自己的inode,并在磁盤上有一小片空間存放路徑名.
(3)軟連接可以對一個不存在的文件名進(jìn)行連接 。
(4)軟連接可以對目錄進(jìn)行連接。
備 注:I節(jié)點 :它是UNIX內(nèi)部用于描述文件特性的數(shù)據(jù)結(jié)構(gòu).我們通常稱I節(jié)點為文件索引結(jié)點(信息結(jié)點).i節(jié)點含有關(guān)于文件的大部分的重要信息,包括文件數(shù)據(jù)塊在 磁盤上的地址.每一個I節(jié)點有它自己的標(biāo)志號,我們稱為文件順序號.I節(jié)點包含的信息 1.文件類型 2.文件屬主關(guān)系 3.文件的訪問權(quán)限 4.文件的時間截.
最后 刪除符號鏈接,有創(chuàng)建就有刪除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
在Linux系統(tǒng)中,內(nèi)核為每一個新創(chuàng)建的文件分配一個Inode(索引結(jié)點),每個文件都有一個惟一的inode號。文件屬性保存在索引結(jié)點里,在訪問文件時,索引結(jié)點被復(fù)制到內(nèi)存在,從而實現(xiàn)文件的快速訪問。
鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯(lián)系的一種方法。Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱為符號鏈接(Symbolic link)。符號連接相當(dāng)于Windows下的快捷方式。
硬鏈接說白了是一個指針,指向文件索引節(jié)點,系統(tǒng)并不為它重新分配inode。可以用:ln命令來建立硬鏈接。
語法:
ln [options] existingfile newfile(sexistingfile 待建立鏈接文件的文件,newfile是新創(chuàng)建的鏈接文件)
ln [options] existingfile-list directory
-f 建立時,將同檔案名刪除.
-i 刪除前進(jìn)行詢問.
ln -s abc cde 建立abc 的軟連接
ln abc cde 建立abc的硬連接,
用法:
第一種:為”existingfile”創(chuàng)建硬鏈接,文件名為”newfile”。
第二種:在”directory”目錄中,為”existingfile-list”中包含的所有文件創(chuàng)建一個同名的硬鏈接。
常用可選[options] –f 無論”newfile”存在與否,都創(chuàng)建鏈接。-n 如果”newfile”已存在,就不創(chuàng)建鏈接。
下面舉一些例子:
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
[ root@rekfan.com test]# ln file2 file2hand
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.com test]#
注意在創(chuàng)建鏈接前,file1 顯示的鏈接數(shù)目為1,創(chuàng)建鏈接后file1和file1hard的鏈接數(shù)目都變?yōu)?;file1和file1hard在inode號是一樣的file1和file1hard顯示的文件大小也是一樣??梢娺M(jìn)行了ln命令的操作結(jié)果:file1和file1hard是同一個文件的兩個名字,它們具有同樣的索引節(jié)點號和文件屬性,建立文件file1的硬鏈接,就是為file1的文件索引節(jié)點在當(dāng)前目錄上建立一個新指針。你可以刪除其中任何一個,如rm file2 ,每次只會刪除一個指針,鏈接數(shù)同時減一,當(dāng)鏈接數(shù)減為0時,內(nèi)核才會把文件內(nèi)容從磁盤上刪除。
還可以在不同目錄,但同一文件系統(tǒng)中建立文件的硬鏈接。設(shè)file1、file2在目錄/home/root/dir1中,下面的命令,在/home/root中建立file2的硬鏈接。
ln file2 /home/root/file2hard
下面的程序,是將dir1目錄中所有文件,在目錄dir2中建立硬鏈接
如果使用了 ln –f existingfile newfile,如果newfile已經(jīng)存在,則無論原來newfile是什么文件,只用當(dāng)前用戶對它有寫權(quán)限,newfile就成為exisitngfile的硬鏈接文件。
盡管硬鏈接節(jié)省空間,也是Linux系統(tǒng)整合文件系統(tǒng)的傳統(tǒng)方式,但是存在一下不足之處:
(1)不可以在不同文件系統(tǒng)的文件間建立鏈接
(2)只有超級用戶才可以為目錄創(chuàng)建硬鏈接。
軟鏈接克服了硬鏈接的不足,沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符號鏈接。因而現(xiàn)在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機(jī)器、不同網(wǎng)絡(luò)對文件進(jìn)行鏈接。
建立軟鏈接,只要在ln后面加上選項 –s,下面舉個例子
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.com test]# ln -s file1 file1soft
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft - file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
從上面鏈接后的結(jié)果可以看出來軟鏈接與硬鏈接,區(qū)別不僅僅是在概念上,在實現(xiàn)上也是不同的。區(qū)別:硬鏈接原文件&鏈接文件公用一個inode號,說明他們是同一個文件,而軟鏈接原文件&鏈接文件擁有不同的inode號,表明他們是兩個不同的文件;在文件屬性上軟鏈接明確寫出了是鏈接文件,而硬鏈接沒有寫出來,因為在本質(zhì)上硬鏈接文件和原文件是完全平等關(guān)系;鏈接數(shù)目是不一樣的,軟鏈接的鏈接數(shù)目不會增加;文件大小是不一樣的,硬鏈接文件顯示的大小是跟原文件是一樣的,這用強(qiáng)調(diào),因為是等同的嘛,而這里軟鏈接顯示的大小與原文件就不同了,file1大小是48B,而file1soft是5B,這里面的5實際上就是“file1”的大小。
總之,建立軟鏈接就是建立了一個新文件。當(dāng)訪問鏈接文件時,系統(tǒng)就會發(fā)現(xiàn)他是個鏈接文件,它讀取鏈接文件找到真正要訪問的文件。
在不同系統(tǒng)之間建立軟鏈接、對目錄建立鏈接,這里就不舉例了,讀者可以自己去嘗試,我也是在不斷實踐中學(xué)習(xí)的。
當(dāng)然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當(dāng)原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統(tǒng)就找不到了~~,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移(呵呵);還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點和保存原文件的路徑。
補(bǔ)充一下:可以通過symlink來查看鏈接文件,可以用 man symlink來學(xué)習(xí)。
三、刪除鏈接
有創(chuàng)建就有刪除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft - file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.com test]# rm -rf file1soft
[ root@rekfan.com test]# ls -il
總計 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.com test]#
————————————
linux 軟連接和硬鏈接的區(qū)別:
————————————
4點不同 :
(1)軟連接可以 跨文件系統(tǒng) ,硬連接不可以 。
實踐的方法就是用共享文件把windows下的 aa.txt文本文檔連接到linux下/root目錄 下 bb,cc . ln -s aa.txt
/root/bb 連接成功 。ln aa.txt /root/bb 失敗 。
(2)關(guān)于 I節(jié)點的問題 。硬連接不管有多少個,都指向的是同一個I節(jié)點,會把 結(jié)點連接數(shù)增加 ,只要結(jié)點的連接數(shù)不是 0,文件就一直存在 ,不管你刪除的是
源文件還是 連接的文件 。只要有一個存在 ,文件就 存在 (其實也不分什么 源文件連接文件的 ,因為他們指向都是同一個 I節(jié)點)。 當(dāng)你修改源文件或者連接文件
任何一個的時候 ,其他的 文件都會做同步的修改 。軟鏈接不直接使用i節(jié)點號作為文件指針,而是使用文件路徑名作為指針。所以 刪除連接文件 對源文件無影響,但
是 刪除 源文件,連接文件就會找不到要指向的文件 。軟鏈接有自己的inode,并在磁盤上有一小片空間存放路徑名.
(3)軟連接可以對一個不存在的文件名進(jìn)行連接 。
(4)軟連接可以對目錄進(jìn)行連接。
備注:I節(jié)點 :它是UNIX內(nèi)部用于描述文件特性的數(shù)據(jù)結(jié)構(gòu).我們通常稱I節(jié)點為文件索引結(jié)點(信息結(jié)點).i節(jié)點 含有關(guān)于文件的大部分的重要信 息,包括文件數(shù)據(jù)塊在
磁盤上的地址.每一個I節(jié)點有它自己的標(biāo)志號,我們稱為文件順序號.I節(jié)點包含的信息 1.文件類型 2.文件屬主關(guān)系 3.文件的訪問權(quán)限 4.文件的時間截.
使用以下命令
sudo apt-get clean
sudo apt-get autoremove
autoremove的作用是卸載所有自動安裝且不再使用的軟件包。
autoremove這種方式容易將必要的軟件刪除掉,盡量不要使用。
首先了解下Linux鏈接的概念。
鏈接是為某一個文件在另外一個位置建立一個不同的鏈接,分為硬鏈接和軟鏈接。
Linux軟鏈接:它只會在你選定的位置上生成一個文件的鏡像,不會占用磁盤空間,命令:ln -s xxx
Linux硬鏈接:它會在你選定的位置上生成一個和源文件大小相同的文件,命令:ln xx
無論是軟鏈接還是硬鏈接,文件都保持同步變化。
因此,使用軟鏈接可以將/var目錄下占用空間較大的目錄移動到富足的空間區(qū)塊(如/home)下,使得/var下不再占用空間。
具體實現(xiàn)(www目錄為例):
mv /var/www /home? #將var下的www目錄移動到home或者其他空間富足的區(qū)塊中
ln -s? /home/www /var? #/var/www指向/home/www,這樣www目錄將不再占用/var目錄的空間
3. 未單獨分區(qū)情況
如果/var沒有單獨分區(qū),則系統(tǒng)默認(rèn)共享使用/home目錄,若此時提示/var空間不足,則說明/home空間不足,這種情況可以清理一下/home目錄或者重新安裝系統(tǒng),重新規(guī)劃分區(qū)結(jié)構(gòu),當(dāng)然使用軟鏈接方式也是可以的,只要還有其他空間富足的區(qū)塊。
也可以通過如下命令給/var擴(kuò)容:
fdisk -l? 查看分區(qū)表
fdisk /dev/sdb 鎖定要分的區(qū)
pvcreate /dev/sdb 創(chuàng)建物理卷
vgscan 掃描虛擬卷組
vgextendcl /dev/sdb 給虛擬卷擴(kuò)容
lvextend -L +50G /dev/mapper/cl-var 給虛擬卷擴(kuò)容50G到va
xfs_growfs /dev/mapper/cl-var??讓擴(kuò)容生效,如果此命令不行換這個? resize2fs -f /dev/mapper/cl-var
df -h? 查看磁盤容量
硬鏈接就是同一個文件使用了多個別名(他們有共同的 inode)。
硬鏈接可由命令 link 或 ln 創(chuàng)建,如:
link oldfile newfile
ln oldfile newfile
由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此,刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。
硬鏈接不能對目錄進(jìn)行創(chuàng)建,只可對文件創(chuàng)建。
軟鏈接(也叫符號鏈接)與硬鏈接不同,文件用戶數(shù)據(jù)塊中存放的內(nèi)容是另一文件的路徑名的指向。軟鏈接就是一個普通文件,只是數(shù)據(jù)塊內(nèi)容有點特殊。
軟鏈接可對文件或目錄創(chuàng)建。
ln -s old.file soft.link
ln -s old.dir soft.link.dir
加-s選項表示創(chuàng)建的是軟鏈接。
刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關(guān)軟連接就變成了死鏈接。
什么是軟鏈接和硬鏈接,很多人對這個概念比較模糊,這里幫助你明白他們之間的區(qū)別和用法。
為解決文件的共享使用,Linux 系統(tǒng)引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。
在 Linux 中,元數(shù)據(jù)中的 inode 號(inode 號即索引節(jié)點號)才是文件的唯一標(biāo)識而非文件名,文件內(nèi)容要通過inode 號來尋找,就像交通指示牌一樣,指示著數(shù)據(jù)找尋的方向。
軟鏈接可以理解成快捷方式,和原文件的inode號不一樣。它和windows下的快捷方式的作用是一樣的,軟鏈接數(shù)據(jù)塊中記錄的亦是相對路徑指向。
硬鏈接和原文件對應(yīng)一個inode,就是對應(yīng)一個文件,可以理解成一個文件有幾個別名.
下面這張圖表明了他們之間的區(qū)別了。
這二張圖詳細(xì)的給出這二個文件的異同處。
1,軟鏈接可以理解成快捷方式,也清楚知道原文件在哪兒。它和windows下的快捷方式的作用是一樣的,和windows一樣,刪除源文件,快捷方式也用不了。
2,硬鏈接可以說做了一個備份,但并沒有增加空間,因為文件就一個,這種可以防止源文件刪除后不能使用的問題,但也有局限性,不能對目錄和跨文件系統(tǒng)使用。
相信通過上面的說明,你已經(jīng)明白了二者之間的區(qū)別和用途了。