01.tar
成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元九江做網(wǎng)站,已為上家服務,為九江各地企業(yè)和個人服務,聯(lián)系電話:18980820575
制作或釋放歸檔文件
文件壓縮格式
.gz
.bz2
.bz2壓縮后的文件較.gz小,壓縮時間長
02.鏈接文件
軟鏈接可以跨分區(qū),源文件不可刪除,源刪除后鏈接無法使用
硬鏈接不可以跨分區(qū),源文件可刪除,源刪除后鏈接可以使用
1. 先來了解一下Linux數(shù)據(jù)是如何保存和查詢的
對操作系統(tǒng)來說,數(shù)據(jù)分為兩種:1. 用戶數(shù)據(jù) (user data) 2.元數(shù)據(jù) (metadata)。用戶數(shù)據(jù)就是保存和記錄文件的內容。比如一個1M的ppt文件,500K的txt文件。這都屬于用戶數(shù)據(jù)。這個文件總有屬性吧,比如大小、修改時間、訪問時間、創(chuàng)建時間、存儲的位置(文件所在的inode)、文件創(chuàng)建者等等信息。這些屬性信息或者理解為匯總信息,我們稱它為元數(shù)據(jù)。一句話,用戶數(shù)據(jù)是文件的真實內容,而元數(shù)據(jù)則是匯總信息。
在 Linux 中,元數(shù)據(jù)中的 inode 號(inode 號即索引節(jié)點號)才是文件的唯一標識而非文件名。文件名僅是為了方便人們的記憶和使用,系統(tǒng)或程序通過 inode 號尋找正確的文件數(shù)據(jù)塊。
2. 查看文件對應的inode號
134474678 latest.tar.gz
linux查看文件對應的inode號
可以看出latest.tar.gz這個文件, inode 號是134474678,Linux查找讀寫該文件時,以為個inode號碼為標識,而不是文件名。文件名類似于網(wǎng)站域名,僅僅是方便人類記憶。
也就是說, inode134474678有一個硬鏈接,它就是latest.tar.gz。
3. 根據(jù)inode號查找對應的文件
那么,問題來了,系統(tǒng)上有沒有第二個文件,它的inode號碼也是13447467。
使用find查找一下:
查找結果如下:
/root/latest.tar.gz
/root/latest2.tar.gz
linux根據(jù)inode號查找對應的文件
硬盤上真的有第二個文件它的inode號碼也是134474678,像這種情況,我們認為inode134474678有兩個硬鏈接。當然,這是本文作者提前準備好的。
為解決文件的共享使用,Linux 系統(tǒng)引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統(tǒng)解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節(jié)省存儲等好處。
4. 確認硬鏈接的數(shù)量
查看一下文件latest.tar.gz
輸出結果如下:
-rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz
請留意輸出的結果中的數(shù)字2,表示該文件存在2個硬鏈接。
正常情況下,一個inode只有一個鏈接,如下例
輸出結果:
-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt
請留意輸出的結果中的數(shù)字1,表示該文件只存在1個硬鏈接,默認情況下,文件都是只有一個硬鏈接的。
5. 查看軟鏈接
再來看一個文件
lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout - /proc/self/fd/1
linux查看軟鏈接
我們發(fā)現(xiàn),/dev/stdout實際上指向另一個文件/proc/self/fd/1,這就是軟鏈接。類似于Windows系統(tǒng)上的快捷方式。
6. 軟鏈接與硬鏈接的區(qū)別
6.1 軟鏈接特點
6.2 硬鏈接特點
ln鏈接符原理如下:
Linux ln鏈接符原理圖
7. 創(chuàng)建文件的鏈接
Linux ln命令是一個非常重要而且常用命令,它用于為文件或者目錄創(chuàng)建鏈接。
7.1 創(chuàng)建軟鏈接
創(chuàng)建一個文件,用于演示軟鏈接。
創(chuàng)建軟鏈接示例:
檢查結果:
輸出文件屬性
lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt - soft.txt
linux創(chuàng)建軟鏈接
可以看出這個文件指向當前目錄soft.txt,配置成功。7.2 創(chuàng)建硬鏈接
創(chuàng)建一個文件,用于演示硬鏈接。
創(chuàng)建硬鏈接,沒有使用選項
檢查結果:
輸出文件屬性:
-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt
linux創(chuàng)建硬鏈接
留意以上輸出數(shù)字2,表明該文件有2個副本。
8. 總結
ln命令可以創(chuàng)建文件的副本,也可以創(chuàng)建軟鏈接。
例子:
對于上面的語法 chmod 【{ugoa}{+-=}{rwx}】【文件或目錄】,我們要知道ugoa分別是:u:表示所有者,g:表示所屬組,o:表示其他人,a:表示所有人。而rwx表示的意思如下:
對于【mode=421】【文件或目錄】,這是我們將權限用數(shù)字表示,其中 r 表示4,w表示2,x表示1,分別是2的0次方,1次方,2次方。那么我們可以這樣理解:具有 rwx 權限的數(shù)字就是 7,具有 rw- 權限的數(shù)字是 6,具有 r-- 權限的數(shù)字是 4。
示例1:我們賦予 tmp 目錄下的 tmp.log 所有者 x 的權限;賦予 所屬組 w 權限,其他人 w 權限。
將上面例子改為用 數(shù)字來操作,也就是說我們要給 tmp.log賦予的文件權限是 rwxrw-rw-,用數(shù)字表示是766。
我們還可以遞歸賦予權限,也就是加上 -R 參數(shù)給指定目錄下的所有文件或目錄賦予指定權限。
示例2:給 tmp 目錄下所有文件和目錄賦予 776 的權限
這里我們通過useradd【用戶名】命令創(chuàng)建用戶,然后通過passwd【用戶名】輸入密碼,這兩個命令后面會將。我們通過這兩個命令創(chuàng)建 vae 用戶
然后我們將tmp.log的所有者更改為 vae 用戶:chown vae tmp.log
其中umask 執(zhí)行顯示結果是 0022,第一個0表示特殊權限,后面我們會單獨進行講解有哪幾種特殊權限。022表示權限的掩碼值,我們用7 7 7 減去 0 2 2得到755(是每一位相減),表示的就是下面通過加上-S輸出的rwxr-xr-x,這個值用數(shù)字表示就是755.
這個意思說明創(chuàng)建一個文件的默認權限所有者為rwx,所屬組為rx,其他人為rx。也就是說創(chuàng)建一個新文件默認權限為 rwxr-xr-x,我們創(chuàng)建一個文件來驗證一下:
我們發(fā)現(xiàn)使用touch命令創(chuàng)建了一個文件a.txt,然后發(fā)現(xiàn)權限并不是rwxr-xr-x,而是rw-r--r--。對比發(fā)現(xiàn)少了三個x,也就是少了可執(zhí)行權限。這是為什么呢?
這是因為在Linux系統(tǒng)中,所有新創(chuàng)建的文件都是沒有可執(zhí)行權限的。這是出于Linux系統(tǒng)的一種自我保護,因為類似的病毒木馬程序都是具有可執(zhí)行權限的。所以在Linux系統(tǒng)中,新創(chuàng)建的文件是沒有可執(zhí)行權限的。
那么我們如何設置默認權限呢?比如我們想將新創(chuàng)建的文件權限設置為rwxr-xr--,也就是754。我們用777減去754得到023。也就是通過執(zhí)行 umask 023 來完成默認權限設置。