linux tar命令簡(jiǎn)介
一、使用介紹
tar命令用來打包,解包和壓縮。
1、名詞區(qū)分
打包:將一大堆文件或目錄變成一個(gè)總的文件【tar命令】
壓縮:將一個(gè)大的文件通過一些壓縮算法變成一個(gè)小文件【gzip,bzip2等】
Linux中很多壓縮程序只能針對(duì)一個(gè)文件進(jìn)行壓縮,這樣當(dāng)你想要壓縮一大堆文件時(shí),你得將這一大堆文件先打成一個(gè)包(tar命令),然后再用壓縮程序進(jìn)行壓縮(gzip bzip2命令)。
2、tar語法
語法:tar [主選項(xiàng)+輔選項(xiàng)] 文件或目錄
使用該命令時(shí),主選項(xiàng)必須有,它告訴tar要做什么事情,輔選項(xiàng)是輔助使用的,可以選用。
主選項(xiàng):【一條命令以下5個(gè)參數(shù)只能有一個(gè)】
-c: --create 新建一個(gè)壓縮文檔,即打包
-x: --extract,--get解壓文件
-t: --list,查看壓縮文檔里的所有內(nèi)容
-r:--append 向壓縮文檔里追加文件
-u:--update 更新原壓縮包中的文件
輔助選項(xiàng):
-z:是否同時(shí)具有g(shù)zip的屬性?即是否需要用gzip壓縮或解壓?一般格式為xxx.tar.gz或xx.tgz
-j:是否同時(shí)具有bzip2的屬性?即是否需要用bzip2壓縮或解壓?一般格式為xx.tar.bz2
-v:顯示操作過程!這個(gè)參數(shù)很常用
-f:使用文檔名,注意,在f之后要立即接文檔名,不要再加其他參數(shù)!
-C:切換到指定目錄
--exclude FILE:在壓縮過程中,不要將FILE打包
二、例子
1、打包
習(xí)慣上以.tar后綴代表tar包,用xxx.tar.gz或.tgz代表gzip壓縮過的tar文件,用.tar.bz2代表bzip2壓縮過的tar文件。
將img1和img2兩個(gè)文件夾打包成img.tar,僅打包不壓縮
liuxiaoyan@development:~/test$ tar -cvf img.tar img1 img2
img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ ls img1 img2 img.tar
將img1和img2兩個(gè)文件夾打包成img.tar.gz,打包后,以gzip壓縮
liuxiaoyan@development:~/test$ tar -zcvf img.tar.gz img1 img2 img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ ls img1 img2 img.tar img.tar.gz
將img1和img2兩個(gè)文件夾打包成img.tar.bz2,打包后,以bzip2來壓縮
liuxiaoyan@development:~/test$ tar -jcvf img.tar.bz2 img1 img2 img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ ls img1 img2 img.tar img.tar.bz2 img.tar.gz
2、不解壓的情況下查看
查看img.tar中的所有內(nèi)容
liuxiaoyan@development:~/test$ tar -tf img.tar img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png
查看img.tar.gz的所有內(nèi)容
加-v參數(shù)查看詳細(xì)信息,-z可有可無
liuxiaoyan@development:~/test$ tar -tf img.tar.gz img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ tar -ztf img.tar.gz img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ tar -ztvf img.tar.gz drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/ -rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png -rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png -rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.png drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:10 img2/ -rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png -rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png -rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png
查看img.tar.bz2內(nèi)容
加-v參數(shù)查看詳細(xì)信息,-j可有可無
liuxiaoyan@development:~/test$ tar -tf img.tar.bz2 img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ tar -jtf img.tar.bz2 img1/ img1/102.png img1/101.png img1/100.png img2/ img2/105.png img2/104.png img2/103.png liuxiaoyan@development:~/test$ tar -jtvf img.tar.bz2 drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:09 img1/ -rw-r--r-- liuxiaoyan/liuxiaoyan 1952 2015-05-20 22:08 img1/102.png -rw-r--r-- liuxiaoyan/liuxiaoyan 2344 2015-05-20 22:08 img1/101.png -rw-r--r-- liuxiaoyan/liuxiaoyan 1995 2015-05-20 22:09 img1/100.png drwxrwxr-x liuxiaoyan/liuxiaoyan 0 2015-05-20 22:10 img2/ -rw-r--r-- liuxiaoyan/liuxiaoyan 1922 2015-05-20 22:09 img2/105.png -rw-r--r-- liuxiaoyan/liuxiaoyan 1546 2015-05-20 22:08 img2/104.png -rw-r--r-- liuxiaoyan/liuxiaoyan 2033 2015-05-20 22:08 img2/103.png
3、解壓
將img.tar減壓到temp目錄
liuxiaoyan@development:~/test$ cd temp/ liuxiaoyan@development:~/test/temp$ ls liuxiaoyan@development:~/test/temp$ tar -xf ../img.tar liuxiaoyan@development:~/test/temp$ ls img1 img2
只減壓img.tar中的img1
liuxiaoyan@development:~/test/temp$ tar -xf ../img.tar img1 liuxiaoyan@development:~/test/temp$ ls img1
4、更新
現(xiàn)在給movies文件下新建一個(gè)文件movie2.txt,然后更新enjoy.tar
$ tar -cf img.tar img1 img2
給img1增加了一張照片,現(xiàn)在用下面命令更新img.tar
$ tar -uf img.tar img1
5、追加
$ tar -cf img.tar img1 img2 img.tar里追加一個(gè)文件夾img3 $ tar -rf img.tar img3
6、-C參數(shù)
-C(大C參數(shù)很有用,改變文件目錄,多層時(shí)用) -C, --directory=DIR change to directory DIR
使用了-C參數(shù)改變目錄為-C后面 目錄,不管是在打包還是解壓都很有用。
用法:
tar temp.tar file -C fileDir $ cd temp $ ls img1 img2 img3 $ tar -cf img.tar temp/*
這樣打包會(huì)將temp目錄也打包進(jìn)去,使用下面帶有-C參數(shù)的命令可以去掉路徑信息
$ tar -cf img.tar * -C temp
解壓img.tar到當(dāng)前目錄下的temp目錄
$ tar -xf img.tar -C temp
三、解壓方法總結(jié)
1、*.tar 用 tar –xvf 解壓
2、*.gz 用 gzip -d或者gunzip 解壓
3、*.tar.gz和*.tgz 用 tar –xzf 解壓
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
5、*.tar.bz2用tar –xjf 解壓
6、*.Z 用 uncompress 解壓
7、*.tar.Z 用tar –xZf 解壓
8、*.rar 用 unrar x 解壓
9、*.zip 用 unzip 解壓
使用unrar注意:
先安裝unrar,使用unrar不帶參數(shù)運(yùn)行一下就可以看到幫助信息。
如果一個(gè)文件s.rar,里面有1000首歌,用e參數(shù),就直接把1000首歌全減壓出來到當(dāng)前目錄。
如果是x參數(shù),解壓后,所有內(nèi)容都放在同名的文件夾里面。
總結(jié)
以上所述是小編給大家介紹的linux tar命令簡(jiǎn)介,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Linux shell實(shí)現(xiàn)壓縮多個(gè)文件代碼實(shí)例
這篇文章主要介紹了Linux shell實(shí)現(xiàn)壓縮多個(gè)文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08shell命令實(shí)現(xiàn)當(dāng)前目錄下多個(gè)文件合并為一個(gè)文件的方法
今天小編就為大家分享一篇關(guān)于shell命令實(shí)現(xiàn)當(dāng)前目錄下多個(gè)文件合并為一個(gè)文件的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02Linux 下mysql通過存儲(chǔ)過程實(shí)現(xiàn)批量生成記錄
這篇文章主要介紹了Linux 下mysql通過存儲(chǔ)過程實(shí)現(xiàn)批量生成記錄的相關(guān)資料,需要的朋友可以參考下2017-05-05linux中shell腳本實(shí)現(xiàn)下載完關(guān)機(jī)
本文給大家分享的是個(gè)人在實(shí)際應(yīng)用中制作的一個(gè)小程序,十分的實(shí)用,推薦給大家,有需要的小伙伴可以參考下。2015-03-03