Linux之打包指令——tar

這一節主要介紹tar指令

  1. linux打包指令tar

前一節介紹了gzip、bzip2、xz壓縮指令,這些壓縮指令只能對單個文件或者對目錄下所有文件分別壓縮,不像windows中的WinRAR那樣可以“隨意壓縮”,此節介紹的tar指令可以實現“隨意壓縮”

tar指令

root@DESKTOP-I95TUI1:~# tar -cvp -f my_tar.tar filename

選項與參數:

-c :打包文件必帶參數,可搭配 -v 來察看過程中被打包的文件名(filename)

-t :察看打包文件的內容含有哪些文件名,重點在察看“文件名”就是了;

-x :解壓文件必帶參數,可以搭配 -C (大寫) 在特定目錄解開

特別留意的是, -c, -t, -x 不可同時出現在一串命令行中。

-z :通過 gzip 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.gz

-j :通過 bzip2 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.bz2

-J :通過 xz 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.xz

特別留意, -z, -j, -J 不可以同時出現在一串命令行中

-v :在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來!

-f filename:-f 後面要立刻接要被處理的文件名!建議 -f 單獨寫一個選項囉!(比較不會忘記)

-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。

其他後續練習會使用到的選項介紹:

-p(小寫) :保留備份數據的原本權限與屬性,常用於備份(-c)重要的配置文件

-P(大寫) :保留絕對路徑,亦即允許備份數據中含有根目錄存在之意;

--exclude=FILE:在壓縮的過程中,不要將 FILE 打包!

其實我們常用到的打包命令只需要記住一條即可,假設我們需要給/etc/下面的文件打包:

打包文件指令

root@DESKTOP-I95TUI1:~# tar -zcvp -f my_etc.tar.gz /etc/ 使用gzip軟件壓縮打包(最常用)

root@DESKTOP-I95TUI1:~# tar -jcvp -f my_etc.tar.bz2 /etc/ 使用bzip2軟件壓縮打包

root@DESKTOP-I95TUI1:~# tar -Jcvp -f my_etc.tar.xz /etc/ 使用xz軟件壓縮打包

root@DESKTOP-I95TUI1:~# tar -cvp -f my_etc.tar /etc/ (不進行壓縮僅打包)

解壓打包文件指令:

root@DESKTOP-I95TUI1:~# tar -zxvp -f my_etc.tar.gz 使用gzip軟件解壓打包文件(最常用)

root@DESKTOP-I95TUI1:~# tar -jxvp -f my_etc.tar.bz2 使用bzip2軟件解壓打包文件

root@DESKTOP-I95TUI1:~# tar -Jxvp -f my_etc.tar.xz 使用xz軟件解壓打包文件

root@DESKTOP-I95TUI1:~# tar -xvp -f my_etc.tar 解壓打包文件

詳細參數介紹見上面選項參數,-f是指定打包文件,至於文件擴展名是自定義的,為了以後解壓做個標記,-f選項也可以與前面和在一起(但需要把-f放在最後 例如:-jcvpf正確、-jfcvp錯誤,所以一般把-f單獨拿出來,思考一下為什麼?還是不明白的可以評論區討論哦),對gzip、bzip2、xz不瞭解的參見上一節:


示例一、

Linux之打包指令——tar

tar打包壓縮文件

上面的指令是使用bzip2軟件(-j)對目錄/etc/下的文件進行壓縮打包,朋友們測試的時候可以加上-v參數,這樣會輸出打包的文件名,使用time命令是為了計算次打包指令一共花費了多少時間(只需要看real),-p是把需要打包的文件原本權限與屬性一併打包,意義非凡哦。另外tar: Removing leading `/' from member names 這句話的意思是在打包壓縮時,去除根目錄(你知道為什麼嗎?猜一下?)上一節介紹過,gzip、bzip2、xz壓縮比例與壓縮時間的問題,我們來對比一下三種打包壓縮所需要的時間與壓縮比例

Linux之打包指令——tar

gzip、bzip2、xz打包壓縮對比

由上圖可知,/etc/目錄未壓縮打包之前是2.5M,分別使用三種壓縮軟件之後壓縮文件大小可以通過對比了解到,在時間上gzip

示例二、

Linux之打包指令——tar

解包文件

上圖是對gzip類型的打包壓縮文件解包操作,默認是解壓到當前目錄,也可以指定目錄(-C)

Linux之打包指令——tar

指定目錄解包

細心的朋友們可能發現了,解包操所是對/etc/文件解壓到當前目錄,還記得上面說過的打包時有一句提示信息:tar: Removing leading `/' from member names(移除根目錄),現在明白了吧,如果打包時不移除根目錄,那麼解包時會發生什麼?會替換到原目錄。所以一定要注意哦。

打包指令還有很多其他強大的功能:

打包某目錄,但不含該目錄下的某些文件之作法

例如,我要打包/etc/下的文件但是不想打包/etc/acpi/目錄怎麼辦呢?使用--exclude

Linux之打包指令——tar

--exclude

可以在指令後面加多個--exclude

僅備份比某個時刻以後的文件

Linux之打包指令——tar

--newer-mtime

這個功能可以說是相當重要的,舉個例子:如果一個網站需要每月備份一次,總不能每次都從開始時間備份吧,當然是以時間段為單位備份咯。

上面就是tar常用到的一些功能,如有錯誤歡迎指正批評,寫文章不易,滿意的話可以關注一下,拜謝拜謝!!!

下一節介紹XFS文件系統的的備份


分享到:


相關文章: