第九章、文件與文件系統的壓縮與打包
阿新 • • 發佈:2017-05-25
一個 and cpio ora 自己 align node filename ace 第九章、文件與文件系統的壓縮與打包
1. 壓縮文件的用途與技術
2. Linux 系統常見的壓縮命令
2.1 compress
2.2 gzip, zcat
2.3 bzip2, bzcat
3. 打包命令: tar
4. 完整備份工具:dump, restore
5. 光盤寫入工具
5.1 mkisofs:創建映像檔
5.2 cdrecord:光盤燒錄工具
6. 其他常見的壓縮與備份工具
6.1 dd
6.2 cpio
7. 重點回顧
1. 壓縮文件的用途與技術
2. Linux 系統常見的壓縮命令 壓縮文件的擴展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 當你下載到某個壓縮檔時,自然就需要知道該文件是由哪種壓縮命令所制作出來的,好用來對照著解壓縮啊! 底下我們就列出幾個常見的壓縮文件擴展名吧:
Linux上常見的壓縮命令就是 gzip 與 bzip2 ,至於 compress 已經退流行了
這個 tar 可以將很多文件『打包』成為一個文件!甚至是目錄也可以這麽玩。不過,單純的 tar 功能僅是『打包』而已,亦即是將很多文件集結成為一個文件, 事實上,他並沒有提供壓縮的功能,後來,GNU 計畫中,將整個 tar 與壓縮的功能結合在一起,如此一來提供使用者更方便並且更強大的壓縮與打包功能!
2.1 compress
過期。。
2.2 gzip, zcat
gzip
可以說是應用度最廣的壓縮命令了!目前 gzip 可以解開 compress, zip 與 gzip 等軟件所壓縮的文件。 至於 gzip 所創建的壓縮檔為 *.gz 的檔名喔!讓我們來看看這個命令的語法吧:
與 compress 類似的,當你使用 gzip 進行壓縮時,在默認的狀態下原本的文件會被壓縮成為 .gz 的檔名, 原始文件就不再存在了。您也可以發現,由於 gzip 的壓縮比要比 compress 好的多,所以當然建議使用 gzip 啦! 此外,使用 gzip 壓縮的文件在 Windows 系統中,竟然可以被 WinRAR 這個軟件解壓縮呢!很好用吧!至於其他的用法如下:
cat 可以讀取純文字檔,那個 zcat 則可以讀取純文字檔被壓縮後的壓縮檔! 由於 gzip 這個壓縮命令主要想要用來取代 compress 的,所以不但 compress 的壓縮文件可以使用 gzip 來解開,同時 zcat 這個命令可以同時讀取 compress 與 gzip 的壓縮檔呦!
2.3 bzip2, bzcat
若說 gzip 是為了取代 compress 並提供更好的壓縮比而成立的,那麽 bzip2 則是為了取代 gzip 並提供更佳的壓縮比而來的。 bzip2 真是很不錯用的東西~這玩意的壓縮比竟然比 gzip 還要好~至於 bzip2 的用法幾乎與 gzip 相同! 看看底下的用法吧!
使用 gzip 擴展名自動創建為 .gz 。這裏的 bzip2 則是自動的將擴展名建置為 .bz2 羅!所以當我們使用具有壓縮功能的 bzip2 -z 時,那麽剛剛的 man.config 就會自動的變成了 man.config.bz2 這個檔名羅!
好了,那麽如果我想要讀取這個文件的內容呢? 是否一定要解開?當然不需要羅!可以使用簡便的 bzcat 這個命令來讀取內容即可!例如上面的例子中, 我們可以使用 bzcat man.config.bz2 來讀取數據而不需要解開!此外,當你要解開一個壓縮檔時, 這個文件的名稱為 .bz, .bz2, .tbz, .tbz2 等等,那麽就可以嘗試使用 bzip2 來解看看啦!當然羅,也可以使用 bunzip2 這個命令來取代 bzip2 -d 羅。
3. 打包命令: tar 前一小節談到的命令大多僅能針對單一文件來進行壓縮,雖然 gzip 與 bzip2 也能夠針對目錄來進行壓縮, 不過,這兩個命令對目錄的壓縮指的是『將目錄內的所有文件 "分別" 進行壓縮』的動作! 而不像在 Windows 的系統,可以使用類似 WinRAR 這一類的壓縮軟件來將好多數據『包成一個文件』的樣式。 這種將多個文件或目錄包成一個大文件的命令功能,我們可以稱呼他是一種『打包命令』啦! 那 Linux 有沒有這種打包命令呢?是有的!那就是鼎鼎大名的 tar 這個玩意兒了! tar 可以將多個目錄或文件打包成一個大文件,同時還可以透過 gzip/bzip2 的支持,將該文件同時進行壓縮! 由於 tar 的使用太廣泛了,目前 Windows 的 WinRAR 也支持 .tar.gz 檔名的解壓縮呢! 1.tar tar 的選項與參數非常的多!我們只講幾個常用的選項,更多選項您可以自行 man tar 查詢羅! 其實最簡單的使用 tar 就只要記憶底下的方式即可:
4. 完整備份工具:dump, restore 4.1完整備份工具:dump 某些時刻你想要針對文件系統進行備份或者是儲存的功能時,不能不談到這個 dump 命令! 這玩意兒我們曾在前一章的 /etc/fstab 裏面稍微談過。 其實這個命令除了能夠針對整個 filesystem 備份之外,也能夠僅針對目錄來備份喔! 底下就讓我們來談一談這個命令的用法吧! 1.dump 其實 dump 的功能頗強,他除了可以備份整個文件系統之外,還可以制定等級喔!什麽意思啊! 假設你的 /home 是獨立的一個文件系統,那你第一次進行過 dump 後,再進行第二次 dump 時, 你可以指定不同的備份等級,假如指定等級為 1 時,此時新備份的數據只會記錄與第一次備份所有差異的文件而已 雖然 dump 支持整個文件系統或者是單一各別目錄,但是對於目錄的支持是比較不足的,這也是 dump 的限制所在。 簡單的說,如果想要備份的數據如下時,則有不同的限制情況:
5. 光盤寫入工具 5.1 mkisofs:創建映像檔 5.2 cdrecord:光盤燒錄工具
6. 其他常見的壓縮與備份工具 6.1 dd 6.2 cpio
7. 重點回顧
1. 壓縮文件的用途與技術
2. Linux 系統常見的壓縮命令 壓縮文件的擴展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』 當你下載到某個壓縮檔時,自然就需要知道該文件是由哪種壓縮命令所制作出來的,好用來對照著解壓縮啊! 底下我們就列出幾個常見的壓縮文件擴展名吧:
3. 打包命令: tar 前一小節談到的命令大多僅能針對單一文件來進行壓縮,雖然 gzip 與 bzip2 也能夠針對目錄來進行壓縮, 不過,這兩個命令對目錄的壓縮指的是『將目錄內的所有文件 "分別" 進行壓縮』的動作! 而不像在 Windows 的系統,可以使用類似 WinRAR 這一類的壓縮軟件來將好多數據『包成一個文件』的樣式。 這種將多個文件或目錄包成一個大文件的命令功能,我們可以稱呼他是一種『打包命令』啦! 那 Linux 有沒有這種打包命令呢?是有的!那就是鼎鼎大名的 tar 這個玩意兒了! tar 可以將多個目錄或文件打包成一個大文件,同時還可以透過 gzip/bzip2 的支持,將該文件同時進行壓縮! 由於 tar 的使用太廣泛了,目前 Windows 的 WinRAR 也支持 .tar.gz 檔名的解壓縮呢! 1.tar tar 的選項與參數非常的多!我們只講幾個常用的選項,更多選項您可以自行 man tar 查詢羅! 其實最簡單的使用 tar 就只要記憶底下的方式即可:
- 壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
- 查 詢:tar -jtv -f filename.tar.bz2
- 解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄
4. 完整備份工具:dump, restore 4.1完整備份工具:dump 某些時刻你想要針對文件系統進行備份或者是儲存的功能時,不能不談到這個 dump 命令! 這玩意兒我們曾在前一章的 /etc/fstab 裏面稍微談過。 其實這個命令除了能夠針對整個 filesystem 備份之外,也能夠僅針對目錄來備份喔! 底下就讓我們來談一談這個命令的用法吧! 1.dump 其實 dump 的功能頗強,他除了可以備份整個文件系統之外,還可以制定等級喔!什麽意思啊! 假設你的 /home 是獨立的一個文件系統,那你第一次進行過 dump 後,再進行第二次 dump 時, 你可以指定不同的備份等級,假如指定等級為 1 時,此時新備份的數據只會記錄與第一次備份所有差異的文件而已 雖然 dump 支持整個文件系統或者是單一各別目錄,但是對於目錄的支持是比較不足的,這也是 dump 的限制所在。 簡單的說,如果想要備份的數據如下時,則有不同的限制情況:
- 當待備份的數據為單一文件系統:
- 待備份的數據只是目錄,並非單一文件系統:
- 所有的備份數據都必須要在該目錄 (本例為:/home/someone/) 底下;
- 且僅能使用 level 0 ,亦即僅支持完整備份而已;
- 不支持 -u 選項,亦即無法創建 /etc/dumpdates 這個各別 level 備份的時間記錄檔;
5. 光盤寫入工具 5.1 mkisofs:創建映像檔 5.2 cdrecord:光盤燒錄工具
6. 其他常見的壓縮與備份工具 6.1 dd 6.2 cpio
7. 重點回顧
第九章、文件與文件系統的壓縮與打包