新聞中心
在Linux系統(tǒng)中,軟連接是一個非常常見的文件類型。它的存在可以極大地方便文件的管理,但是在進(jìn)行文件的壓縮時,如果不特意處理,它卻很容易被破壞。

創(chuàng)新互聯(lián)自2013年起,先為青岡等服務(wù)建站,青岡等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為青岡企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
今天我們就來聊一聊,Linux下壓縮文件如何保持軟連接。
一、什么是軟連接
軟連接是Linux中的一種文件類型,它可以將一個文件或者目錄鏈接到另一個位置,也就是說,通過軟連接,我們可以在不改變文件的位置的情況下,添加一個快捷方式。
在Linux系統(tǒng)中,可以使用ln命令來創(chuàng)建軟連接,其命令格式如下:
“`
ln -s 源文件 目標(biāo)文件
“`
例如,在當(dāng)前目錄下創(chuàng)建一個軟連接,鏈接到/usr/share/doc目錄下的文檔:
“`
ln -s /usr/share/doc doc
“`
二、常見的壓縮工具
在保持軟連接的前提下,我們還需要使用一些特定的壓縮工具來對文件進(jìn)行壓縮。
常見的壓縮工具包括:tar、gzip、bzip2、split等。
其中,tar是Linux下最常用的打包工具,它可以將多個文件或者目錄打成一個文件,并且支持壓縮格式,如gz、bz2等。
gzip和bzip2則是tar壓縮格式的擴(kuò)展,它們分別使用gzip和bzip2算法對文件進(jìn)行壓縮,是Linux下常用的壓縮工具。
split工具則是將一個大文件分割成多個小文件的工具,它在備份大文件時非常有用。
三、保持軟連接的tar壓縮
在Linux系統(tǒng)中,我們可以使用tar命令對文件進(jìn)行打包和壓縮。為了保持軟連接,我們需要使用一些特殊參數(shù)。
我們需要使用”-h”選項來解決軟連接的問題,它會將軟連接所指向的文件打包進(jìn)去。
例如,要將當(dāng)前目錄下的文件打包成一個名為test.tar的文件,并保持軟連接:
“`
tar -chf test.tar *
“`
接著,我們可以使用”-z”選項來將文件壓縮成tar.gz格式:
“`
tar -czhf test.tar.gz *
“`
類似的,我們也可以使用”-j”選項來將文件壓縮成tar.bz2格式:
“`
tar -cjhf test.tar.bz2 *
“`
還可以使用”-J”選項將文件壓縮成tar.xz格式:
“`
tar -cJhf test.tar.xz *
“`
需要注意的是,由于tar命令的壓縮和打包是分開進(jìn)行的,因此我們也可以先使用tar打包,然后再使用gzip或bzip2進(jìn)行壓縮:
“`
tar -chf test.tar *
gzip test.tar
“`
或者:
“`
tar -chf test.tar *
bzip2 test.tar
“`
四、保持軟連接的split工具
在備份大文件時,我們有時候需要將一個大文件拆分成多個小文件進(jìn)行備份。這個時候,我們同樣需要保持軟連接。
類似的,我們可以使用”-h”選項保持軟連接:
“`
split -h 文件名 前綴
“`
舉個例子,要將當(dāng)前目錄下的bigfile文件拆分成多個小文件,并保持軟連接:
“`
split -h bigfile allfile.
“`
接著,我們還可以使用tar命令將所有的小文件打包壓縮成一個文件:
“`
tar -czhf test.tar.gz allfile.*
“`
這樣,我們在備份文件時就可以輕松地保持軟連接了。
五、
保持軟連接在Linux系統(tǒng)中非常有用,它可以讓我們方便地管理文件和目錄。在進(jìn)行壓縮和備份時,我們同樣也需要保持軟連接。
針對不同的壓縮工具,我們需要使用特定的參數(shù)來保持軟連接。對于tar命令來說,我們需要使用”-h”選項;對于split工具來說,我們同樣需要使用”-h”選項。通過這些方法,我們可以輕松地在Linux系統(tǒng)中保持軟連接。
相關(guān)問題拓展閱讀:
- linux軟連接出現(xiàn)紅色 不管用
- linux 軟連接和硬鏈接的區(qū)別
- Linux 軟連接和硬鏈接之間的區(qū)別
linux軟連接出現(xiàn)紅色 不管用
在 linux 服務(wù)器上創(chuàng)建了一個軟連接,這樣使用一些 命令 的時候埋褲胡會方便一些。
這里服務(wù)器搭建的 node 環(huán)境 ,使用 node-v16.13.0-linux-x64.tar.xz node
壓縮包
。
步驟如下:
1.我們上傳一個壓縮包,并且解壓
2.cd 到bin目錄下 并且 ./node -v 會有結(jié)果返回
3.這時我們軟連接:ls -s ./node /usr/bin/node
到
根目錄
下去測試 node -v 命令 ,返回 ‘未找到命令’,我們輸入命令 cd /彎攔usr/bin 并且 ls,發(fā)現(xiàn) node 是紅色的。
查文檔后:
Linux系統(tǒng)顏色默認(rèn)表示的
文件類型
:
藍(lán)色表示目錄;
綠色表示
可執(zhí)行文件
;
紅色表示純慶壓縮文件;
淺藍(lán)色表示鏈接文件;
灰色表示其它文件;
紅色閃爍表示鏈接的文件有問題了;
黃色是設(shè)備文件,包括block, char, fifo。
最后解決方式是 :軟連接時寫全被連接的地址
改成 ln -s /全路徑/node /usr/bin/node 問題解決!
linux 軟連接和硬鏈接的區(qū)別
為解決文件的共享使用,Linux系統(tǒng)引入了兩種鏈接:硬鏈接和軟鏈接。在Linux中,元數(shù)據(jù)中的inode號才是文件的唯一標(biāo)識而非文件名,文件內(nèi)容要通過inode號來尋找,猶如交通指示牌一樣,指示著數(shù)據(jù)找尋的方向。
硬鏈接(Hard Link)
A和B的硬鏈接,則A的目錄項中的inode節(jié)點號與B的目錄項中的inode節(jié)點號相同,即一個inode節(jié)點對應(yīng)兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統(tǒng)來說是完全平等的。如果刪除其中一個,對另外一個沒有任何影響。每增加一個文件名,inode節(jié)點上的鏈接數(shù)增加一,每刪除一個對應(yīng)的文件名,inode節(jié)點上的鏈接數(shù)減一,直到為0,inode節(jié)點和對應(yīng)的數(shù)據(jù)塊被回收。
注:文件和文件名是不同的東西,rm A刪除的只是A這個文件名,而A對應(yīng)的數(shù)據(jù)塊只有在inode節(jié)點鏈接數(shù)減少為0的時候才會被系統(tǒng)回收。
軟鏈接(Soft Link)
A是B的軟鏈接,A的目錄項中的inode節(jié)點號與B的目錄項中的節(jié)點號不相同,A和B指向的是兩個不同的inode,繼而指向兩塊不同的數(shù)據(jù)塊。但是A的數(shù)據(jù)塊中存放的只是B的路徑名。A和B之間是主從關(guān)系,如果B被刪除了,A依然存在,但指向的是一個無效的鏈接。
Linux中軟鏈接和硬鏈接之間有什么區(qū)別和聯(lián)系?
概念不同:
軟鏈接可以理解成快捷方式,和原文件的inode號不一樣,它和Windows下的快捷方式的作用是一樣的,軟鏈接數(shù)據(jù)塊中記錄的亦是相對路徑指向。
硬鏈接和原文件對應(yīng)一個inode,就是對應(yīng)一個文件,可以理解成一個文件有幾個別名。
用法不同:
軟鏈接可以理解成快捷方式,也清楚知道原文件在哪里。它和Windows下的快捷方式的作用是一樣的,和Windows一樣,刪除源文件,快捷方式也就無法使用了。
硬鏈接可以看成一個備份,但并沒有增加空間,因為文件就一個,這種可以防止源文件刪除后不能使用問題;同時也有局限性,不能對目錄和跨文件系統(tǒng)使用。
語法格式(ln):
硬鏈接:ln 源文件 鏈接名
軟鏈接:ln -s 源文件 鏈接名
注意:鏈接的源文件路徑要寫絕對路徑,否則會報錯。
首先我們需要了解linux下硬鏈接以及軟連接的基本概念.
硬鏈接:新建的文件是已經(jīng)存在的文件的一個別名,當(dāng)原文件刪除時,新建的文件仍然可以使用.
軟鏈接:也稱為符號鏈接,新建的文件以“路徑”的形式來表示另一個文件,和Windows的快捷方式十分相似,新建的軟鏈接可以指向不存在的文件.
下面詳細(xì)介紹一下硬鏈接和軟連接之間的區(qū)別.
1.硬鏈接和原來的文件沒有什么區(qū)別,而且共享一個 inode 號(文件在文件系統(tǒng)上的唯一標(biāo)識);而軟鏈接不共享 inode,也可以說是個特殊的 inode,所以和原來的 inode 有區(qū)別。
2.若原文件刪除了,則該軟連接則不可以訪問,而硬連接則是可以的。
3.由于符號鏈接的特性,導(dǎo)致其可以跨越磁盤分區(qū),但硬鏈接不具備這個特性.
另外在轉(zhuǎn)載一下網(wǎng)上的介紹.
硬鏈接(hard link) ln
UNIX文件系統(tǒng)提供了一種將不同文件鏈接至同一個文件的機制,我們稱這種機制為鏈接。它可以使得單個程序?qū)ν晃募褂貌煌拿?。這樣的好處是文件系統(tǒng)只存在一個文件的副本。系統(tǒng)簡單地通過在目錄中建立一個新的登記項來實現(xiàn)這種連接。該登記項具有一個新的文件名和要連接文件的inode號(inode與原文件相同)。不論一個文件有多少硬鏈接,在磁盤上只有一個描述它的inode,只要該文件的鏈接數(shù)不為0,該文件就保持存在。硬鏈接不能對目錄建立硬鏈接!
硬連接是直接建立在節(jié)點表上的(inode),建立硬連接指向一個文件的時候,會更新節(jié)點表上面的計數(shù)值。舉個例子,一個文件被連接了兩次(硬連接),這個文件的計數(shù)值是3,而無論通過3個文件名中的任何一個訪問,效果都是完全一樣的,但是如果刪除其中任意一個,都只是把計數(shù)值減1,不會刪除實際的內(nèi)容的,(任何存在的文件本身就算是一個硬連接)只有計數(shù)值變成0也就是沒有任何硬連接指向的時候才會真實的刪除內(nèi)容。
軟鏈接(symbolic link) ln-s
我們把符號鏈接稱為軟鏈接,它是指向另一個文件的特殊文件,這種文件的數(shù)據(jù)部分僅包含它所要鏈接文件的路徑名。軟鏈接是為了克服硬鏈接的不足而引入的,軟鏈接不直接使用inode號作為文件指針,而是使用文件路徑名作為指針(軟鏈接:文件名 + 數(shù)據(jù)部分–>目標(biāo)文件的路徑名)。軟件有自己的inode,并在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統(tǒng),也可以和目錄鏈接!其二,軟鏈接可以對一個不存在的文件名進(jìn)行鏈接,但直到這個名字對應(yīng)的文件被創(chuàng)建后,才能打開其鏈接。
Linux 軟連接和硬鏈接之間的區(qū)別
軟鏈接:
1.軟鏈接,以路徑的形式存在。類似于Windows操作系統(tǒng)中的快捷方式
2.軟鏈接可以 跨文件系統(tǒng) ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進(jìn)行鏈接
4.軟鏈接可以對目錄進(jìn)行鏈接
硬鏈接:
1.硬鏈接,以文件副本的形式存在。但不占用實際空間。
2.不允許給目錄創(chuàng)建硬鏈接
3.硬鏈接只有在同一個文件系統(tǒng)中才能創(chuàng)建
這里有兩點要注意:
之一,ln命令會保持每一處鏈接文件的同步性,也就是說,不論你改動了哪一處,其它的文件都會發(fā)生相同的變化;
第二,ln的鏈接又分軟鏈接和硬鏈接兩種,軟鏈接就是ln –s 源文件 目標(biāo)文件,它只會在你選定的位置上生成一個文件的鏡宏帆像,不會占用磁盤空間,硬鏈接 ln 源文件 目標(biāo)文件,沒有參數(shù)-s, 它會在你選定的位置上生成一個和源文件大小相同的文件,無論是軟鏈接還是硬鏈接,文件都保持同步變化。
ln指令用在鏈接文件或目模掘錄,如蔽碼雹同時指定兩個以上的文件或目錄,且最后的目的地是一個已經(jīng)存在的目錄,則會把前面指定的所有文件或目錄復(fù)制到該目錄中。若同時指定多個文件或目錄,且最后的目的地并非是一個已存在的目錄,則會出現(xiàn)錯誤信息。
關(guān)于linux 壓縮 保持軟連接的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
網(wǎng)站欄目:Linux下壓縮文件如何保持軟連接?(linux壓縮保持軟連接)
新聞來源:http://www.dlmjj.cn/article/djiidoo.html


咨詢
建站咨詢
