最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux shell命令用法及常見用例之tar命令

 更新時(shí)間:2018年07月11日 14:31:28   作者:老兵驛站  
眾所周知tar命令用來打包,解包和壓縮,下面這篇文章主要給大家介紹了關(guān)于Linux shell命令用法及常見用例之tar命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

tar命令用來歸檔多個(gè)文件或目錄到單個(gè)歸檔文件中,并且歸檔文件可以進(jìn)一步使用gzip或者bzip2等技術(shù)進(jìn)行壓縮。

命令格式

tar [OPTION...] [FILE]...

命令功能

Tar(Tape ARchive,磁帶歸檔的縮寫,最初設(shè)計(jì)用于將文件打包到磁帶上,現(xiàn)在大都使用它來實(shí)現(xiàn)備份某個(gè)分區(qū)或者某些重要的目錄)是類Unix系統(tǒng)中使用最廣泛的命令,用于歸檔多個(gè)文件或目錄到單個(gè)歸檔文件中,并且歸檔文件可以進(jìn)一步使用gzip或者bzip2等技術(shù)進(jìn)行壓縮,還能保留其文件權(quán)限。換言之,tar命令也可以用于備份:先是歸檔多個(gè)文件和目錄到一個(gè)單獨(dú)的tar文件或歸檔文件,然后在需要之時(shí)將tar文件中的文件和目錄釋放出來。

命令選項(xiàng)

選項(xiàng) 含義
-A或–catenate 新增文件到以存在的備份文件
-B 設(shè)置區(qū)塊大小
-c或–create 建立新的備份文件
-C<目錄> 這個(gè)選項(xiàng)用在解壓縮,若要在特定目錄解壓縮,可以使用這個(gè)選項(xiàng)
-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 確認(rèn)壓縮文件的正確性
-p或–same-permissions 用原來的文件權(quán)限還原文件
-P或–absolute-names 文件名使用絕對名稱,不移除文件名稱前的“/”號
-N <日期格式>或–newer=<日期時(shí)間>只將較指定日期更新的文件保存到備份文件里
–exclude=<范本樣式> 排除符合范本樣式的文件

 

什么是“文件壓縮”?

我們知道,在計(jì)算機(jī)系統(tǒng)中文件的內(nèi)容是信息,信息實(shí)際上就是一個(gè)由值0和值1組成的位(又稱為比特)序列,8個(gè)位被組織成一組,稱為字節(jié)。一般來說,一個(gè)字節(jié)的8位是沒有被全部利用起來的,這些沒有被利用的位占據(jù)了一個(gè)文件的大部分空間,而“文件壓縮”就是利用復(fù)雜的計(jì)算方式,將這些沒有利用的空間騰出來,以讓文件占用的空間變小。

簡單來說,「壓縮」就是把文件中沒有完全填滿的空間填滿。壓縮過的文件不能直接被操作系統(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兩個(gè)壓縮命令,它們是GNU計(jì)劃的中的一部分,在此之前是compress命令,但它已經(jīng)不再流行了。bzip2比gzip的壓縮比很好,不過bzip2通常只能針對一個(gè)文件來壓縮和解壓縮。如果是這樣的話,壓縮整個(gè)開發(fā)環(huán)境目錄就太繁瑣了。

因此tar命令就出現(xiàn)了,tar不是一個(gè) “壓縮命令”,而是一個(gè)“打包命令”。也就是說,tar可以把很多文件「打包」成一個(gè)文件,甚至連目錄也可以進(jìn)行打包。一開始tar命令的確是不支持壓縮的功能,后來GNU計(jì)劃為了提供給使用者更方便并且更加強(qiáng)大的壓縮與打包功能,就把整個(gè)tar與壓縮的功能結(jié)合在一起了。

僅僅打包起來的tar文件俗稱tarfile文件,經(jīng)過壓縮的tar文件叫做tarball文件。

全能的 tar 命令

概要

tar可以將多個(gè)目錄或文件打成一個(gè)大文件,同時(shí)支持gzip/bzip2

歸檔:tar {-c} [option…] -f destination source

追加歸檔:tar {-r | -u} -f source [option…] destination

解壓:tar {-t | -x} -f source [option…] -C destination

最簡單的使用 tar 只要記住下面的方式:

  • 壓縮:tar -jcv -f filename.tar.bz2 被壓縮的文件或目錄名稱
  • 查看文件:tar -jtv -f filename.tar.bz2
  • 解壓縮:tar -jxv -f filename.tar.gz -C 解壓到哪里

filename.tar.bz2 既然tar不是一個(gè)壓縮命令,是個(gè)打包命令,那么是如何做到打包并壓縮的呢?我們先來看一下tar命令的常用參數(shù):

模式參數(shù)

  • -c(–create):創(chuàng)建新的歸檔文件。
  • -r(–append):與-c一樣創(chuàng)建新的歸檔文件,但這是以追加的模式,只能往未壓縮過的歸檔文件中追加,要求指定-f參數(shù)。
  • -t:查看歸檔文件的內(nèi)容含有哪些文件,可以看到包括文件名在內(nèi)的詳細(xì)信息。
  • -u:與-r一樣,但是只往歸檔文件添加更新的文件。
  • -x:解壓縮歸檔文件。如果一個(gè)歸檔文件里有相同文件名的多個(gè)文件,那么會(huì)先將每個(gè)文件解壓,最新的文件將覆蓋舊的文件。

tar分為三種模式,-c,-r,-u三個(gè)一類,為歸檔/壓縮模式,在該模式下,tar會(huì)遞歸遍歷指定目錄下的所有目錄和文件,并創(chuàng)建歸檔文件。-x表示為去歸檔/解壓模式,-t表示為打印列表模式。

通用參數(shù)

  • -j:使用bzip2的支持進(jìn)行壓縮和解壓縮,文件名最好為*.tar.bz2。
  • -z:使用gzip的支持進(jìn)行壓縮和解壓縮,文件名最好為*.tar.gz。
  • -v:在壓縮/解壓縮的過程中,將正在處理的文件名顯示出來。
  • -f:后面接被處理的文件名,最好把-f單獨(dú)出來寫一個(gè)參數(shù)。
  • -C:指定解壓的目錄。
  • -p:保留文件的原始信息,權(quán)限等等
  • -P:解壓時(shí)保留絕對路徑。
  • –exclude=FILE:在打包壓縮的時(shí)候,不要將FILE打包。

打包并創(chuàng)建歸檔文件

示例:打包一個(gè)目錄。

描述:將/home/test這個(gè)目錄打包,生成文件名為command-18-06-02.tar的歸檔文件,保存在當(dāng)前目錄下。

# 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

-c(–create的簡寫)參數(shù),這表示為指定的文件或者目錄創(chuàng)建新的歸檔文件。使用-f指定讀取或者寫入的歸檔文件,可以用-表示標(biāo)準(zhǔn)輸入或者標(biāo)準(zhǔn)輸出,-f可以與其他參數(shù)連起來寫,必須保證f參數(shù)后面跟的是文件名。但不推薦這樣寫,因?yàn)閰?shù)調(diào)換順序是允許的,如果寫成-cfv就會(huì)導(dǎo)致壓縮后的文件名變成了v。

使用-v表示生成詳細(xì)的輸出,在壓縮或者解壓的模式中,會(huì)列出正在向歸檔文件讀或者寫的文件名字。

創(chuàng)建tar.gz歸檔文件

示例:打包并且使用gzip壓縮。

描述:將/home/test/images目錄下的所有文件以及目錄中的文件打包,并用gzip進(jìn)行壓縮,生成名為MyImages-18-06-02.tar.gz的歸檔文件,放在當(dāng)前目錄下。

# tar -zcv -f MyImages-18-06-02.tar.gz /home/test/images
OR
# tar -zcv -f MyImages-18-06-02.tar.tgz /home/test/images
/home/test/images/alejandro-gonzalez-17189.jpg
/home/test/images/brooke-lark-275181.jpg
/home/test/images/brenda-godinez-228181.jpg
/home/test/images/artur-rutkowski-97622.jpg
/home/test/images/ben-white-138743.jpg

-z表示要使用gzip支持來壓縮或者解壓文件,注意gzip的壓縮的文件格式最好寫成tar.gz。(注:tar.gz 和 tgz 是同一個(gè)意思)

打包壓縮排除某些文件

示例:打包壓縮并排除某些文件。

描述:將/home/test/images目錄下,排除brooke-lark-275181.jpg和ben-white-138743.jpg之外的所有文件打包,并用gzip進(jìn)行壓縮,生成名為MyImages-18-06-02.tar.gz的歸檔文件,放在當(dāng)前目錄下。

# tar -czv -f MyImages-18-06-02.tar.gz --exclude=./brooke-lark-275181.jpg --exclude=./ben-white-138743.jpg /home/test/images
/home/test/images/alejandro-gonzalez-17189.jpg
/home/test/images/brenda-godinez-228181.jpg
/home/test/images/artur-rutkowski-97622.jpg

解壓歸檔文件(默認(rèn))

示例:解壓,默認(rèn)解壓。

描述:將名為MyImages-18-06-02.tar的歸檔文件解壓至當(dāng)前目錄下。

# tar -xvf MyImages-18-06-02.tar
home/test/images/alejandro-gonzalez-17189.jpg
home/test/images/brenda-godinez-228181.jpg
home/test/images/artur-rutkowski-97622.jpg

其中,-x參數(shù)表示去解壓一個(gè)歸檔文件,如果歸檔文件中有兩個(gè)相同名字的文件,那么每一個(gè)文件都會(huì)被解壓出來,然后最新的會(huì)覆蓋舊的文件。注意這里沒有指定-j參數(shù),因?yàn)閠ar看到指定了-x參數(shù),就知道這是解壓操作,會(huì)自動(dòng)判斷該解壓包的壓縮類型。

解壓歸檔文件并指定目錄

示例:解壓到一個(gè)指定目錄。

描述:將名為MyImages-18-06-02.tar.gz的歸檔文件解壓至一個(gè)指定的目錄。

# tar -xv -f MyImages-18-06-02.tar -C /home/test/public_images
home/test/public_images/alejandro-gonzalez-17189.jpg
home/test/public_images/brenda-godinez-228181.jpg
home/test/public_images/artur-rutkowski-97622.jpg

查看壓縮包文件信息

示例:查看壓縮包文件信息。

描述:列出MyImages-18-06-02.tar.bz2中的文件信息,-v參數(shù),會(huì)生成與ls(1)命令相近的輸出。

# tar -tv -f MyImages-18-06-02.tar.gz
OR
# tar -tv -f MyImages-18-06-02.tar.bz2
-rw-r--r-- root/root 2176861 2018-06-02 21:26 home/test/images/alejandro-gonzalez-17189.jpg
-rw-r--r-- root/root 8452524 2018-06-02 21:26 home/test/images/brenda-godinez-228181.jpg
-rw-r--r-- root/root 1131986 2018-06-02 21:26 home/test/images/artur-rutkowski-97622.jpg

解壓單個(gè)文件

示例:解壓單個(gè)文件。

描述:將home/test/.bashrc這一個(gè)文件從歸檔文件中提取出來。

# tar -xv -f command-18-06-02.tar home/test/.bashrc
home/test/.bashrc

解壓多個(gè)指定的文件

示例:解壓多個(gè)指定的文件。

描述:將file1、file2等多個(gè)文件從歸檔文件中提取出來,可以用空格隔開多個(gè)文件,也可以用通配符的形式。

# tar -zxv -f MyImages-18-06-02.tar.gz "file 1" "file 2"
OR
# tar -zxv -f MyImages-18-06-02.tar.gz --wildcards '*b*.jpg'
home/test/images/brooke-lark-275181.jpg
home/test/images/brenda-godinez-228181.jpg
home/test/images/ben-white-138743.jpg
home/test/images/aleks-dahlberg-274646.jpg

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Apache控制是否顯示站點(diǎn)目錄(推薦)

    Apache控制是否顯示站點(diǎn)目錄(推薦)

    這篇文章主要介紹了Apache控制是否顯示站點(diǎn)目錄(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • Linux通過匿名管道進(jìn)行進(jìn)程間通信

    Linux通過匿名管道進(jìn)行進(jìn)程間通信

    這篇文章主要介紹了Linux通過匿名管道進(jìn)行進(jìn)程間通信,介紹了什么是管道,popen函數(shù),pipe調(diào)用等相關(guān)內(nèi)容,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • linux系統(tǒng)下MongoDB單節(jié)點(diǎn)安裝教程

    linux系統(tǒng)下MongoDB單節(jié)點(diǎn)安裝教程

    這篇文章主要給大家介紹了在linux系統(tǒng)下mongo在單節(jié)點(diǎn)安裝的方法教程,文中將實(shí)現(xiàn)的方法一步步介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。
    2017-10-10
  • 利用logsave如何將命令輸出保存起來

    利用logsave如何將命令輸出保存起來

    logsave命令運(yùn)行給定的命令,并將命令的輸出信息保存到指定的日志文件中。下面這篇文章主要給大家介紹了關(guān)于利用logsave如何將命令輸出保存起來的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Linux內(nèi)核中的設(shè)計(jì)模式之全面理解與示例代碼

    Linux內(nèi)核中的設(shè)計(jì)模式之全面理解與示例代碼

    這篇文章主要介紹了Linux內(nèi)核中的設(shè)計(jì)模式之全面理解與示例代碼,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • linux中vi編輯器的練習(xí)心得

    linux中vi編輯器的練習(xí)心得

    給大家分享一下在linux中練習(xí)vi編輯器的心得以及需要避免的一些坑。
    2017-11-11
  • 在Linux中對存儲(chǔ)設(shè)備進(jìn)行分區(qū)和格式化的操作步驟

    在Linux中對存儲(chǔ)設(shè)備進(jìn)行分區(qū)和格式化的操作步驟

    在 Linux 系統(tǒng)上準(zhǔn)備新磁盤以供使用是一個(gè)簡單的過程,雖然有許多工具、文件系統(tǒng)格式和分區(qū)方案可能會(huì)因?yàn)樘厥庑枨蠖淖冞@個(gè)過程,但基本原理仍然是一樣的,文中給大家詳細(xì)介紹了在Linux中對存儲(chǔ)設(shè)備進(jìn)行分區(qū)和格式化的操作步驟,需要的朋友可以參考下
    2024-10-10
  • CentOS 部署 flask項(xiàng)目的方法

    CentOS 部署 flask項(xiàng)目的方法

    本篇文章主要介紹了CentOS 部署 flask項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • CentOS服務(wù)器中安裝FFmpeg的完整步驟

    CentOS服務(wù)器中安裝FFmpeg的完整步驟

    這篇文章主要給大家介紹了關(guān)于在CentOS服務(wù)器中安裝FFmpeg的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • apache下ab.exe使用介紹

    apache下ab.exe使用介紹

    這篇文章主要介紹了apache下ab.exe使用方法,需要的朋友可以參考下
    2014-03-03

最新評論

康乐县| 武穴市| 九江县| 体育| 灌云县| 东辽县| 涿鹿县| 塔城市| 革吉县| 武陟县| 仪征市| 石嘴山市| 桃园县| 璧山县| 涟水县| 株洲县| 延庆县| 冷水江市| 芮城县| 惠来县| 朔州市| 茶陵县| 固始县| 留坝县| 右玉县| 大关县| 黎城县| 江川县| 昌宁县| 石屏县| 金平| 英超| 通化市| 中宁县| 康定县| 日照市| 武宁县| 大方县| 南岸区| 郎溪县| 红河县|