linux-basic(9)文件与文件系统的压缩与打包
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                linux-basic(9)文件与文件系统的压缩与打包
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            【9.1】壓縮文件的用途與技術
 
【9.2】linux系統常見的壓縮命令
1)壓縮文件的擴展名大多是 tar, tar.gz, tgz, gz, Z, bz2 等;如下圖所示:
 
(1)
Linux上常見的壓縮命令就是 gzip 與 bzip2 ,至於 compress 已經不再流行了。
 
【9.2.1】Compress
1)CentOS 默認并沒有安裝這個軟件到系統當中,所以想要了解這個軟件的使用時,請先安裝 ncompress 這個軟件。
 
【9.2.2】gzip, zcat
1)目前 gzip 可以解開 compress, zip 與 gzip 等軟件所壓縮的文件。 至於 gzip 所創建的壓縮檔為 *.gz 的檔名喔!
【荔枝】 gzip命令
 
(2)
 
(3)
 
(4)
 
(5)
 
補充:-9 壓縮比最好,但壓縮時間最長;
(6)
【9.2.3】bzip2, bzcat
1)介紹:若說 gzip 是為了取代 compress 并提供更好的壓縮比而成立的,那么 bzip2 則是為了取代 gzip 并提供更佳的壓縮比而來的。 bzip2 真是很不錯用的東西~這玩意的壓縮比竟然比 gzip 還要好~至於 bzip2 的用法幾乎與 gzip 相同!
 
【荔枝】bzip2
 
(7)
 
(8)
 
(9)
 
(10)
【補充】壓縮和打包的區別
補充1)壓縮:前一小節談到的命令大多僅能針對單一文件來進行壓縮,雖然 gzip 與 bzip2 也能夠針對目錄來進行壓縮, 不過,這兩個命令對目錄的壓縮指的是“將目錄內的所有文件 "分別" 進行壓縮”的動作。即將各個文件壓縮后,再打包到一個目錄;
補充2)打包:這種將多個文件或目錄包成一個大文件的命令功能,我們可以稱呼他是一種打包命令;這是將所有數據包成一個文件;
 
【9.3】打包命令:tar
1)tar 可以將多個目錄或文件打包成一個大文件,同時還可以透過 gzip/bzip2 的支持,將該文件同時進行壓縮!?
 
【荔枝】tar
 
(11)
其實最簡單的使用 tar 就只要記憶底下的方式即可:
? ● 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
? ● 查 詢:tar -jtv -f filename.tar.bz2
? ● 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
 
【荔枝】使用 tar 加入 -j 或 -z 的參數備份 /etc/ 目錄
 
(12)
補充:優先使用 bzip 即 -j 參數進行壓縮;因為壓縮效果好;
 
【荔枝】查閱 tar 文件的數據內容(可察看檔名),與備份檔名有否根目錄的意義
 
(13)
【注意】上面的每個文件都沒跟目錄了;
那為什么要拿掉根目錄呢?
主要是為了安全!我們使用 tar 備份的數據可能會需要解壓縮回來使用, 在 tar 所記錄的檔名 (就是我們剛剛使用 tar -jtvf 所察看到的檔名) 那就是解壓縮后的實際檔名。 如果拿掉了根目錄,假設你將備份數據在 /tmp 解開,那么解壓縮的檔名就會變成『/tmp/etc/xxx』。 但『如果沒有拿掉根目錄,解壓縮后的檔名就會是絕對路徑, 亦即解壓縮后的數據一定會被放置到 /etc/xxx 去!』如此一來,你的原本的 /etc/ 底下的數據, 就會被備份數據所覆蓋過去了!
 
【荔枝】如果你確定你就是需要備份根目錄到 tar 的文件中,那可以使用 -P (大寫) 這個選項:
 
(14)
 
(15)
【荔枝】將備份的數據解壓縮,并考慮特定目錄的解壓縮動作 (-C 選項的應用)?
 
(16)
【荔枝】僅解開單一文件的方法
 
(17)
【荔枝】打包某目錄,但不含該目錄下的某些文件之作法:通過 --exclude 來實現
 
(18)
【荔枝】僅備份比某個時刻還要新的文件
 
(19)
 
(20)
補充:以上操作可以對文件進行差異打包;
 
【注意】打包和壓縮的不同:tarfile, tarball ?
如果僅是打包而已,就是tar -cv -f file.tar 而已,這個文件我們稱呼為 tarfile 。?
如果還有進行壓縮的支持,例如 tar -jcv -f file.tar.bz2 時,我們就稱呼為 tarball (tar 球?)!
 
【荔枝】特殊應用:利用管道命令與數據流
介紹: tar 的使用中,有一種方式最特殊,那就是透過標準輸入輸出的數據流重導向(standard input/standard output), 以及管線命令 (pipe) 的方式,將待處理的文件一邊打包一邊解壓縮到目標目錄去。
 
(21)
【9.4】完整備份工具: dump
【9.4.1】dump
 
(22)
【荔枝】用 dump 備份完整的文件系統
 
(23)
1)補充:這樣很簡單的就創建起來 /root/home.dump 文件,該文件將整個 /home/ 文件系統都備份下來了! 并且將備份的時間寫入 /etc/dumpdates 文件中,準備讓下次備份時可以作為一個參考依據。
 
(24)
2)檢查看看能否真的創建 level 1 的備份呢?
 
(25)
 
(26)
差異備份:僅備份更改的文件;
 
【荔枝】用 dump 備份非文件系統,亦即單一目錄的方法
說明) 現在讓我們來處理一下 /etc 的 dump 備份吧!因為 /etc 并非單一文件系統,他只是個目錄而已。 所以依據限制的說明, -u, level 1~9 都是不適用的。我們只能夠使用 level 0 的完整備份將 /etc 給他 dump 下來。
 
(27)
補充:一般來說 dump 不會使用包含壓縮的功能,不過如果你想要將備份的空間降低的話,那個 -j 的選項是可以使用的。 加上 -j 之后你的 dump 成果會使用較少的硬盤容量啦!
 
【9.4.2】恢復備份文件的命令restore: dump 的復原使用的是 restore 這個命令!
 
(28)
【荔枝】用 restore 觀察 dump 后的備份數據內容
 
(29)
【荔枝】比較差異并且還原整個文件系統
為什么 dump 可以進行累積備份呢?就是因為他具有可以查詢文件系統與備份文件之間的差異, 并且將分析到的差異數據進行備份的緣故。
 
(30)
【9.5】光盤寫入工具
mkisofs:新建鏡像文件;
cdrecord 光盤刻錄工具;
 
【9.6】其他常見的壓縮與備份工具
【9.6.1】dd:dd 可以讀取磁碟裝置的內容(幾乎是直接讀取磁區"sector"),然后將整個裝置備份成一個文件呢!
 
(31)
 
(32)
 
(33)
【總結】tar 可以用來備份關鍵數據,而 dd 則可以用來備份整顆 partition 或 整顆 disk。
 
【9.6.2】cpio
1)簡介:這個命令挺有趣的,因為 cpio 可以備份任何東西,包括裝置設備文件。一般來說, cpio 得要配合類似 find 等可以找到檔名的命令來告知 cpio 該被備份的數據在哪里啊!
 
(34)
【荔枝】cpio + find 備份文件數據
 
(35)
 
(36)
【荔枝】其實系統里面已經含有一個使用 cpio 創建的文件喔!那就是 /boot/initrd-xxx 這個文件啦! 現在讓我們來將這個文件解壓縮看看,看你能不能發現該文件的內容為何?
 
(37)
【9.7】重點回顧
? ● 壓縮命令為透過一些運算方法去將原本的文件進行壓縮,以減少文件所占用的磁碟容量。 壓縮前與壓縮后的文件所占用的磁碟容量比值, 就可以被稱為是『壓縮比』
? ● 壓縮的好處是可以減少磁碟容量的浪費,在 WWW 網站也可以利用文件壓縮的技術來進行數據的傳送,好讓網站頻寬的可利用率上升喔
? ● 壓縮文件的擴展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』
? ● 常見的壓縮命令有 gzip 與 bzip2 ,其中 bzip2 壓縮比較之 gzip 還要更好,建議使用 bzip2 !
? ● tar 可以用來進行文件打包,并可支持 gzip 或 bzip2 的壓縮。
? ● 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
? ● 查 詢:tar -jtv -f filename.tar.bz2
? ● 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
? ● dump 命令可備份文件系統或單一目錄
? ● dump 的備份若針對文件系統時,可進行 0-9 的 level 差異備份!其中 level 0 為完整備份;
? ● restore 命令可還原被 dump 建置的備份檔;
? ● 要創建光盤燒錄數據時,可透過 mkisofs 命令來建置;
? ● 可透過 cdrecord 來寫入 CD 或 DVD 燒錄機
? ● dd 可備份完整的 partition 或 disk ,因為 dd 可讀取磁碟的 sector 表面數據
 
                            
                        
                        
                        【9.2】linux系統常見的壓縮命令
1)壓縮文件的擴展名大多是 tar, tar.gz, tgz, gz, Z, bz2 等;如下圖所示:
(1)
Linux上常見的壓縮命令就是 gzip 與 bzip2 ,至於 compress 已經不再流行了。
【9.2.1】Compress
1)CentOS 默認并沒有安裝這個軟件到系統當中,所以想要了解這個軟件的使用時,請先安裝 ncompress 這個軟件。
【9.2.2】gzip, zcat
1)目前 gzip 可以解開 compress, zip 與 gzip 等軟件所壓縮的文件。 至於 gzip 所創建的壓縮檔為 *.gz 的檔名喔!
【荔枝】 gzip命令
(2)
(3)
(4)
(5)
補充:-9 壓縮比最好,但壓縮時間最長;
(6)
【9.2.3】bzip2, bzcat
1)介紹:若說 gzip 是為了取代 compress 并提供更好的壓縮比而成立的,那么 bzip2 則是為了取代 gzip 并提供更佳的壓縮比而來的。 bzip2 真是很不錯用的東西~這玩意的壓縮比竟然比 gzip 還要好~至於 bzip2 的用法幾乎與 gzip 相同!
【荔枝】bzip2
(7)
(8)
(9)
(10)
【補充】壓縮和打包的區別
補充1)壓縮:前一小節談到的命令大多僅能針對單一文件來進行壓縮,雖然 gzip 與 bzip2 也能夠針對目錄來進行壓縮, 不過,這兩個命令對目錄的壓縮指的是“將目錄內的所有文件 "分別" 進行壓縮”的動作。即將各個文件壓縮后,再打包到一個目錄;
補充2)打包:這種將多個文件或目錄包成一個大文件的命令功能,我們可以稱呼他是一種打包命令;這是將所有數據包成一個文件;
【9.3】打包命令:tar
1)tar 可以將多個目錄或文件打包成一個大文件,同時還可以透過 gzip/bzip2 的支持,將該文件同時進行壓縮!?
【荔枝】tar
(11)
其實最簡單的使用 tar 就只要記憶底下的方式即可:
? ● 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
? ● 查 詢:tar -jtv -f filename.tar.bz2
? ● 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
【荔枝】使用 tar 加入 -j 或 -z 的參數備份 /etc/ 目錄
(12)
補充:優先使用 bzip 即 -j 參數進行壓縮;因為壓縮效果好;
【荔枝】查閱 tar 文件的數據內容(可察看檔名),與備份檔名有否根目錄的意義
(13)
【注意】上面的每個文件都沒跟目錄了;
那為什么要拿掉根目錄呢?
主要是為了安全!我們使用 tar 備份的數據可能會需要解壓縮回來使用, 在 tar 所記錄的檔名 (就是我們剛剛使用 tar -jtvf 所察看到的檔名) 那就是解壓縮后的實際檔名。 如果拿掉了根目錄,假設你將備份數據在 /tmp 解開,那么解壓縮的檔名就會變成『/tmp/etc/xxx』。 但『如果沒有拿掉根目錄,解壓縮后的檔名就會是絕對路徑, 亦即解壓縮后的數據一定會被放置到 /etc/xxx 去!』如此一來,你的原本的 /etc/ 底下的數據, 就會被備份數據所覆蓋過去了!
【荔枝】如果你確定你就是需要備份根目錄到 tar 的文件中,那可以使用 -P (大寫) 這個選項:
(14)
(15)
【荔枝】將備份的數據解壓縮,并考慮特定目錄的解壓縮動作 (-C 選項的應用)?
(16)
【荔枝】僅解開單一文件的方法
(17)
【荔枝】打包某目錄,但不含該目錄下的某些文件之作法:通過 --exclude 來實現
(18)
【荔枝】僅備份比某個時刻還要新的文件
(19)
(20)
補充:以上操作可以對文件進行差異打包;
【注意】打包和壓縮的不同:tarfile, tarball ?
如果僅是打包而已,就是tar -cv -f file.tar 而已,這個文件我們稱呼為 tarfile 。?
如果還有進行壓縮的支持,例如 tar -jcv -f file.tar.bz2 時,我們就稱呼為 tarball (tar 球?)!
【荔枝】特殊應用:利用管道命令與數據流
介紹: tar 的使用中,有一種方式最特殊,那就是透過標準輸入輸出的數據流重導向(standard input/standard output), 以及管線命令 (pipe) 的方式,將待處理的文件一邊打包一邊解壓縮到目標目錄去。
(21)
【9.4】完整備份工具: dump
【9.4.1】dump
(22)
【荔枝】用 dump 備份完整的文件系統
(23)
1)補充:這樣很簡單的就創建起來 /root/home.dump 文件,該文件將整個 /home/ 文件系統都備份下來了! 并且將備份的時間寫入 /etc/dumpdates 文件中,準備讓下次備份時可以作為一個參考依據。
(24)
2)檢查看看能否真的創建 level 1 的備份呢?
(25)
(26)
差異備份:僅備份更改的文件;
【荔枝】用 dump 備份非文件系統,亦即單一目錄的方法
說明) 現在讓我們來處理一下 /etc 的 dump 備份吧!因為 /etc 并非單一文件系統,他只是個目錄而已。 所以依據限制的說明, -u, level 1~9 都是不適用的。我們只能夠使用 level 0 的完整備份將 /etc 給他 dump 下來。
(27)
補充:一般來說 dump 不會使用包含壓縮的功能,不過如果你想要將備份的空間降低的話,那個 -j 的選項是可以使用的。 加上 -j 之后你的 dump 成果會使用較少的硬盤容量啦!
【9.4.2】恢復備份文件的命令restore: dump 的復原使用的是 restore 這個命令!
(28)
【荔枝】用 restore 觀察 dump 后的備份數據內容
(29)
【荔枝】比較差異并且還原整個文件系統
為什么 dump 可以進行累積備份呢?就是因為他具有可以查詢文件系統與備份文件之間的差異, 并且將分析到的差異數據進行備份的緣故。
(30)
【9.5】光盤寫入工具
mkisofs:新建鏡像文件;
cdrecord 光盤刻錄工具;
【9.6】其他常見的壓縮與備份工具
【9.6.1】dd:dd 可以讀取磁碟裝置的內容(幾乎是直接讀取磁區"sector"),然后將整個裝置備份成一個文件呢!
(31)
(32)
(33)
【總結】tar 可以用來備份關鍵數據,而 dd 則可以用來備份整顆 partition 或 整顆 disk。
【9.6.2】cpio
1)簡介:這個命令挺有趣的,因為 cpio 可以備份任何東西,包括裝置設備文件。一般來說, cpio 得要配合類似 find 等可以找到檔名的命令來告知 cpio 該被備份的數據在哪里啊!
(34)
【荔枝】cpio + find 備份文件數據
(35)
(36)
【荔枝】其實系統里面已經含有一個使用 cpio 創建的文件喔!那就是 /boot/initrd-xxx 這個文件啦! 現在讓我們來將這個文件解壓縮看看,看你能不能發現該文件的內容為何?
(37)
【9.7】重點回顧
? ● 壓縮命令為透過一些運算方法去將原本的文件進行壓縮,以減少文件所占用的磁碟容量。 壓縮前與壓縮后的文件所占用的磁碟容量比值, 就可以被稱為是『壓縮比』
? ● 壓縮的好處是可以減少磁碟容量的浪費,在 WWW 網站也可以利用文件壓縮的技術來進行數據的傳送,好讓網站頻寬的可利用率上升喔
? ● 壓縮文件的擴展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』
? ● 常見的壓縮命令有 gzip 與 bzip2 ,其中 bzip2 壓縮比較之 gzip 還要更好,建議使用 bzip2 !
? ● tar 可以用來進行文件打包,并可支持 gzip 或 bzip2 的壓縮。
? ● 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
? ● 查 詢:tar -jtv -f filename.tar.bz2
? ● 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
? ● dump 命令可備份文件系統或單一目錄
? ● dump 的備份若針對文件系統時,可進行 0-9 的 level 差異備份!其中 level 0 為完整備份;
? ● restore 命令可還原被 dump 建置的備份檔;
? ● 要創建光盤燒錄數據時,可透過 mkisofs 命令來建置;
? ● 可透過 cdrecord 來寫入 CD 或 DVD 燒錄機
? ● dd 可備份完整的 partition 或 disk ,因為 dd 可讀取磁碟的 sector 表面數據
? ● cpio 為相當優秀的備份命令,不過必須要搭配類似 find 命令來讀入欲備份的檔名數據,方可進行備份動作。
 
 
總結
以上是生活随笔為你收集整理的linux-basic(9)文件与文件系统的压缩与打包的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 怎么编辑导航(怎么编辑导航位置名称)
 - 下一篇: 安卓手机红包挂(红包挂安卓版)