這一節(jié)主要介紹tar指令
linux打包指令tar
前一節(jié)介紹了gzip、bzip2、xz壓縮指令,這些壓縮指令只能對單個文件或者對目錄下所有文件分別壓縮,不像windows中的WinRAR那樣可以“隨意壓縮”,此節(jié)介紹的tar指令可以實現(xiàn)“隨意壓縮”
root@DESKTOP-I95TUI1:~# tar -cvp -f my_tar.tar filename
選項與參數(shù):
-c :打包文件必帶參數(shù),可搭配 -v 來察看過程中被打包的文件名(filename)
-t :察看打包文件的內容含有哪些文件名,重點在察看“文件名”就是了;
-x :解壓文件必帶參數(shù),可以搭配 -C (大寫) 在特定目錄解開
特別留意的是, -c, -t, -x 不可同時出現(xiàn)在一串命令行中。
-z :通過 gzip 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.gz
-j :通過 bzip2 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.bz2
-J :通過 xz 的支持進行壓縮/解壓縮:此時文件名最好為 *.tar.xz
特別留意, -z, -j, -J 不可以同時出現(xiàn)在一串命令行中
-v :在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來!
-f filename:-f 后面要立刻接要被處理的文件名!建議 -f 單獨寫一個選項啰?。ū容^不會忘記)
-C 目錄 :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
其他后續(xù)練習會使用到的選項介紹:
-p(小寫) :保留備份數(shù)據(jù)的原本權限與屬性,常用于備份(-c)重要的配置文件
-P(大寫) :保留絕對路徑,亦即允許備份數(shù)據(jù)中含有根目錄存在之意;
--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 解壓打包文件
詳細參數(shù)介紹見上面選項參數(shù),-f是指定打包文件,至于文件擴展名是自定義的,為了以后解壓做個標記,-f選項也可以與前面和在一起(但需要把-f放在最后 例如:-jcvpf正確、-jfcvp錯誤,所以一般把-f單獨拿出來,思考一下為什么?還是不明白的可以評論區(qū)討論哦),對gzip、bzip2、xz不了解的參見上一節(jié):
示例一、
tar打包壓縮文件
上面的指令是使用bzip2軟件(-j)對目錄/etc/下的文件進行壓縮打包,朋友們測試的時候可以加上-v參數(shù),這樣會輸出打包的文件名,使用time命令是為了計算次打包指令一共花費了多少時間(只需要看real),-p是把需要打包的文件原本權限與屬性一并打包,意義非凡哦。另外tar: Removing leading `/' from member names 這句話的意思是在打包壓縮時,去除根目錄(你知道為什么嗎?猜一下?)上一節(jié)介紹過,gzip、bzip2、xz壓縮比例與壓縮時間的問題,我們來對比一下三種打包壓縮所需要的時間與壓縮比例
gzip、bzip2、xz打包壓縮對比
由上圖可知,/etc/目錄未壓縮打包之前是2.5M,分別使用三種壓縮軟件之后壓縮文件大小可以通過對比了解到,在時間上gzip<><><><>
示例二、
解包文件
上圖是對gzip類型的打包壓縮文件解包操作,默認是解壓到當前目錄,也可以指定目錄(-C)
指定目錄解包
細心的朋友們可能發(fā)現(xiàn)了,解包操所是對/etc/文件解壓到當前目錄,還記得上面說過的打包時有一句提示信息:tar: Removing leading `/' from member names(移除根目錄),現(xiàn)在明白了吧,如果打包時不移除根目錄,那么解包時會發(fā)生什么?會替換到原目錄。所以一定要注意哦。
打包指令還有很多其他強大的功能:
打包某目錄,但不含該目錄下的某些文件之作法
例如,我要打包/etc/下的文件但是不想打包/etc/acpi/目錄怎么辦呢?使用--exclude
--exclude
可以在指令后面加多個--exclude
僅備份比某個時刻以后的文件
--newer-mtime
這個功能可以說是相當重要的,舉個例子:如果一個網站需要每月備份一次,總不能每次都從開始時間備份吧,當然是以時間段為單位備份咯。
上面就是tar常用到的一些功能,如有錯誤歡迎指正批評,寫文章不易,滿意的話可以關注一下,拜謝拜謝?。?!
下一節(jié)介紹XFS文件系統(tǒng)的的備份
聯(lián)系客服