前言
10多年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站建設(shè),個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁制作,對輕質(zhì)隔墻板等多個方面,擁有豐富的網(wǎng)站維護經(jīng)驗。tar命令用來歸檔多個文件或目錄到單個歸檔文件中,并且歸檔文件可以進一步使用gzip或者bzip2等技術(shù)進行壓縮。
命令格式
tar [OPTION...] [FILE]...
命令功能
Tar(Tape ARchive,磁帶歸檔的縮寫,最初設(shè)計用于將文件打包到磁帶上,現(xiàn)在大都使用它來實現(xiàn)備份某個分區(qū)或者某些重要的目錄)是類Unix系統(tǒng)中使用最廣泛的命令,用于歸檔多個文件或目錄到單個歸檔文件中,并且歸檔文件可以進一步使用gzip或者bzip2等技術(shù)進行壓縮,還能保留其文件權(quán)限。換言之,tar命令也可以用于備份:先是歸檔多個文件和目錄到一個單獨的tar文件或歸檔文件,然后在需要之時將tar文件中的文件和目錄釋放出來。
命令選項
選項 | 含義 |
---|---|
-A或–catenate | 新增文件到以存在的備份文件 |
-B | 設(shè)置區(qū)塊大小 |
-c或–create | 建立新的備份文件 |
-C<目錄> | 這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項 |
-d | 記錄文件的差別 |
-x或–extract或–get | 從備份文件中還原文件 |
-t或–list | 列出備份文件的內(nèi)容 |
-z或–gzip或–ungzip | 通過gzip指令處理備份文件 |
-Z或–compress或–uncompress | 通過compress指令處理備份文件 |
-f<備份文件>或–file=<備份文件> | 指定備份文件 |
-v或–verbose | 顯示指令執(zhí)行過程 |
-r | 添加文件到已經(jīng)壓縮的文件 |
-u | 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件 |
-j | 支持bzip2解壓文件 |
-v | 顯示操作過程 |
-l | 文件系統(tǒng)邊界設(shè)置 |
-k | 保留原有文件不覆蓋 |
-m | 保留文件不被覆蓋 |
-w | 確認壓縮文件的正確性 |
-p或–same-permissions | 用原來的文件權(quán)限還原文件 |
-P或–absolute-names | 文件名使用絕對名稱,不移除文件名稱前的“/”號 |
-N | <日期格式>或–newer=<日期時間>只將較指定日期更新的文件保存到備份文件里 |
–exclude=<范本樣式> | 排除符合范本樣式的文件 |
什么是“文件壓縮”?
我們知道,在計算機系統(tǒng)中文件的內(nèi)容是信息,信息實際上就是一個由值0和值1組成的位(又稱為比特)序列,8個位被組織成一組,稱為字節(jié)。一般來說,一個字節(jié)的8位是沒有被全部利用起來的,這些沒有被利用的位占據(jù)了一個文件的大部分空間,而“文件壓縮”就是利用復(fù)雜的計算方式,將這些沒有利用的空間騰出來,以讓文件占用的空間變小。
簡單來說,「壓縮」就是把文件中沒有完全填滿的空間填滿。壓縮過的文件不能直接被操作系統(tǒng)所使用,因此,「解壓縮」就是指把文件「還原」為未壓縮之前的模樣。壓縮前與壓縮后的文件所占用的磁盤空間大小之比就是「壓縮比」。
常見的壓縮格式
Linux 中常見的壓縮格式有:
*.Z:compress 程序壓縮的文件。
*.gz:gzip 程序壓縮的文件。
*.bz2:bzip2 程序壓縮的文件。
*.tar:tar 程序打包的數(shù)據(jù),沒有被壓縮過。
*.tar.gz(簡寫為 .tgz):tar 程序打包的數(shù)據(jù),經(jīng)過 gzip 的壓縮。
*.tar.bz2(簡寫為 .tbz2):tar 程序打包的數(shù)據(jù),經(jīng)過 bzip2 的壓縮。
上面的壓縮格式中,主要是gzip和bzip2兩個壓縮命令,它們是GNU計劃的中的一部分,在此之前是compress命令,但它已經(jīng)不再流行了。bzip2比gzip的壓縮比很好,不過bzip2通常只能針對一個文件來壓縮和解壓縮。如果是這樣的話,壓縮整個開發(fā)環(huán)境目錄就太繁瑣了。
因此tar命令就出現(xiàn)了,tar不是一個 “壓縮命令”,而是一個“打包命令”。也就是說,tar可以把很多文件「打包」成一個文件,甚至連目錄也可以進行打包。一開始tar命令的確是不支持壓縮的功能,后來GNU計劃為了提供給使用者更方便并且更加強大的壓縮與打包功能,就把整個tar與壓縮的功能結(jié)合在一起了。
僅僅打包起來的tar文件俗稱tarfile文件,經(jīng)過壓縮的tar文件叫做tarball文件。
全能的 tar 命令
概要
tar可以將多個目錄或文件打成一個大文件,同時支持gzip/bzip2
歸檔:tar {-c} [option…] -f destination source
追加歸檔:tar {-r | -u} -f source [option…] destination
解壓:tar {-t | -x} -f source [option…] -C destination
最簡單的使用 tar 只要記住下面的方式:
filename.tar.bz2 既然tar不是一個壓縮命令,是個打包命令,那么是如何做到打包并壓縮的呢?我們先來看一下tar命令的常用參數(shù):
模式參數(shù)
tar分為三種模式,-c,-r,-u三個一類,為歸檔/壓縮模式,在該模式下,tar會遞歸遍歷指定目錄下的所有目錄和文件,并創(chuàng)建歸檔文件。-x表示為去歸檔/解壓模式,-t表示為打印列表模式。
通用參數(shù)
打包并創(chuàng)建歸檔文件
示例:打包一個目錄。
描述:將/home/test這個目錄打包,生成文件名為command-18-06-02.tar的歸檔文件,保存在當前目錄下。
# tar -cv -f command-18-06-02.tar /home/test /home/test/.bash_logout /home/test/.bashrc /home/test/apache-tomcat-9.0.7.tar.gz /home/test/.bash_profile /home/test/nginx-1.10.1.tar.gz