教你在Linux中如何歸檔和備份

roc_guo發表於2021-06-17

保護系統的資料安全是計算機系統管理的重中之重,解決方法就是透過實時備份系統檔案,來保護資料,也就是常說的資料容災備份。在這篇文章中,我們將會描述幾個常用來管理檔案集合的命令程式,即檔案壓縮程式和歸檔程式,從而掌握在 系統中如何歸檔和備份資料。

壓縮檔案

gzip – 壓縮或者展開檔案

bzip2 – 塊排序檔案壓縮器

資料壓縮的原理就是一個刪除冗餘資料的處理過程。壓縮演算法或任務主要分為兩大類,即無失真壓縮和有失真壓縮。無失真壓縮的目標是在實現壓縮的基礎上,保留原始檔案的所有資料。而有失真壓縮呢,在執行壓縮操作的過程中會刪除一些資料,從而實現更大的壓縮目標。有失真壓縮的例項有JPEG (影像)檔案和MP3 (音訊)檔案。我們主要描述完全無失真壓縮,原因是計算機中的大多數資料是不能允許丟失任何資料的。

Gzip 命令

gzip 命令支援壓縮一個或著多個檔案。當執行gzip 命令時,那麼原始檔案的壓縮版會替代原始檔案。相對應的gunzip 命令將壓縮檔案復原為沒有被壓縮的版本。

例項如下:

[centos@linuxprobe ~]$ ls -l /etc > test.txt

[centos@linuxprobe ~]$ ls -l foo.*

-rw-r--r-- 1 centos centos 15738 2008-10-14 07:15 test.txt

[centos@linuxprobe ~]$ gzip test.txt

[centos@linuxprobe ~]$ ls -l foo.*

-rw-r--r-- 1 centos centos 3230 2008-10-14 07:15 test.txt.gz

[centos@linuxprobe ~]$ gunzip test.txt.gz

[centos@linuxprobe ~]$ ls -l foo.*

-rw-r--r-- 1 centos centos 15738 2008-10-14 07:15 test.txt

首先,我們建立了一個名為test.txt 的文字檔案。其次,我們執行gzip 命令,將原始檔案替換為一個叫做test.txt.gz 的壓縮檔案。在foo.* 檔案列表中,檢視得出原始檔案已被壓縮檔案替代,大小約為原始檔案的五分之一,許可權和時間戳相同。

最後,我們執行gunzip 程式來解壓縮檔案。隨後,壓縮檔案解壓縮後得到的檔案,其大小、許可權和時間戳都無變化,實現了無失真壓縮。

bzip2 命令

gzip 命令相似,區別是使用不同的壓縮演算法,捨棄了壓縮速度,從而實現更高的壓縮級別;由bzip2 壓縮的檔案,用副檔名.bz2 來表示。在大多數情況下,它的工作模式及方式等同於gzip 命令。

bunzip2 bzcat 命令用來解壓縮檔案。

bzip2 命令也帶有bzip2recover 程式,其會試圖恢復受損的.bz2 檔案。

例項如下:

[centos@linuxprobe ~]$ ls -l /etc > test.txt

[centos@linuxprobe ~]$ ls -l test.txt

-rw-r--r-- 1 centos centos 15738 2008-10-17 13:51 test.txt

[centos@linuxprobe ~]$ bzip2 test.txt

[centos@linuxprobe ~]$ ls -l test.txt.bz2

-rw-r--r-- 1 centos centos 2792 2008-10-17 13:51 test.txt.bz2

[centos@linuxprobe ~]$ bunzip2 test.txt.bz2

 

歸檔檔案

tar – 打包檔案工具

zip – 打包和壓縮檔案

與檔案壓縮相互結合的檔案管理任務是歸檔。歸檔就是收集多個檔案,並將它們捆綁成一個大檔案的過程。歸檔經常作為系統備份的組成部分來使用。當將一些舊的資料從一個系統遷移到某種型別的長期儲存裝置中時,也會用到歸檔程式。

tar

tar 命令可以說是用來歸檔檔案的經典工具。其檔案的副檔名為.tar 或者.tgz ,它們各自所表達的含義是“普通”的tar 包和被gzip 程式壓縮過的tar 包。一個tar 包可以由一組獨立的檔案,一個或者多個目錄,或者兩者混合體組成。

命令語法如下:

tar mode[options] pathname...

mode 是指以下操作模式之一:

模式說明

c 為檔案和/或目錄列表建立歸檔檔案。

x 抽取歸檔檔案。

r 追加具體的路徑到歸檔檔案的末尾。

t 列出歸檔檔案的內容。

[centos@linuxprobe ~]$ tar xf ../txt.tar

[centos@linuxprobe ~]$ ls

txt

透過檢視/foo/playground 目錄中的內容,這個歸檔檔案已被建立,同時也建立了一個原始檔案副本。

注意:從歸檔檔案中抽取的檔案和目錄的所有權由執行此復原操作的使用者所擁有,不屬於原始所有者。

zip

zip 命令既是一個壓縮工具,同時也是一個打包工具。在Linux gzip 是主要的壓縮命令程式,而uzip 是主要的解壓縮命令程式。

zip/unzip 命令程式可以完成一些大家平常的一些基本操作,它們兩個都有許多選項引數,從而增加了運用靈活性。zip unzip 命令的說明手冊也都相當不錯,並且包含了許多例項。值得注意的是,這些程式的主要用途是為了和Windows 系統交換檔案,而不是在Linux 系統中執行壓縮和打包操作,tar gzip 程式在Linux 系統中更常用。

在這裡討論的所有命令的手冊文件都講解的清清楚楚明明白白,且附上有用的例項。我們需要熟練掌握它們。在編寫這篇文章過程中我還參考了 這本書,內容很貼近實踐,很有理論指導實踐價值的一本書籍。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2777039/,如需轉載,請註明出處,否則將追究法律責任。

相關文章