首頁 - 查詢對照
 收藏

命令查看tar

搜索

tar

Linux下的歸檔使用工具,用來打包和備份。

補充說明

tar命令 可以為linux的文件和目錄創建檔案。利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或將幾個文件組合成為一個文件以便于網絡傳輸是非常有用的。

首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。

為什么要區分這兩個概念呢?這源于Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip?bzip2命令)。

語法

tar(選項)(參數)

選項

-A或--catenate:新增文件到以存在的備份文件;
-B:設置區塊大小;
-c或--create:建立新的備份文件;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
-d:記錄文件的差別;
-x或--extract或--get:從備份文件中還原文件;
-t或--list:列出備份文件的內容;
-z或--gzip或--ungzip:通過gzip指令處理備份文件;
-Z或--compress或--uncompress:通過compress指令處理備份文件;
-f<備份文件>或--file=<備份文件>:指定備份文件;
-v或--verbose:顯示指令執行過程;
-r:添加文件到已經壓縮的文件;
-u:添加改變了和現有的文件到已經存在的壓縮文件;
-j:支持bzip2解壓文件;
-v:顯示操作過程;
-l:文件系統邊界設置;
-k:保留原有文件不覆蓋;
-m:保留文件不被覆蓋;
-w:確認壓縮文件的正確性;
-p或--same-permissions:用原來的文件權限還原文件;
-P或--absolute-names:文件名使用絕對名稱,不移除文件名稱前的“/”號;
-N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件里;
--exclude=<范本樣式>:排除符合范本樣式的文件。

參數

文件或目錄:指定要打包的文件或目錄列表。

實例

- z:有gzip屬性的
- j:有bz2屬性的
- Z:有compress屬性的
- v:顯示所有過程
- O:將文件解開到標準輸出

下面的參數-f是必須的

-f: 使用檔案名字,切記,這個參數是最后一個參數,后面只能接檔案名。

tar -cf all.tar *.jpg
# 這條命令是將所有.jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。

tar -rf all.tar *.gif
# 這條命令是將所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

tar -uf all.tar logo.gif
# 這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

tar -tf all.tar
# 這條命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -cfv archive.tar foo bar  # 從文件foo和bar創建archive.tar。
tar -tvf archive.tar         # 詳細列出archive.tar中的所有文件。
tar -xf archive.tar          # 從archive.tar提取所有文件。

zip格式

壓縮: zip -r [目標文件名].zip [原文件/目錄名]
解壓: unzip [原文件名].zip
注:-r參數代表遞歸

tar格式(該格式僅僅打包,不壓縮)

打包:tar -cvf [目標文件名].tar [原文件名/目錄名]
解包:tar -xvf [原文件名].tar
注:c參數代表create(創建),x參數代表extract(解包),v參數代表verbose(詳細信息),f參數代表filename(文件名),所以f后必須接文件名。

tar.gz格式

方式一:利用前面已經打包好的tar文件,直接用壓縮命令。

壓縮:gzip [原文件名].tar
解壓:gunzip [原文件名].tar.gz

方式二:一次性打包并壓縮、解壓并解包

打包并壓縮: tar -zcvf [目標文件名].tar.gz [原文件名/目錄名]
解壓并解包: tar -zxvf [原文件名].tar.gz
注:z代表用gzip算法來壓縮/解壓。

tar.bz2格式

方式一:利用已經打包好的tar文件,直接執行壓縮命令:

壓縮:bzip2 [原文件名].tar
解壓:bunzip2 [原文件名].tar.bz2
方式二:一次性打包并壓縮、解壓并解包

打包并壓縮: tar -jcvf [目標文件名].tar.bz2 [原文件名/目錄名]
解壓并解包: tar -jxvf [原文件名].tar.bz2
注:小寫j代表用bzip2算法來壓縮/解壓。

tar.xz格式

方式一:利用已經打包好的tar文件,直接用壓縮命令:

壓縮:xz [原文件名].tar
解壓:unxz [原文件名].tar.xz
方式二:一次性打包并壓縮、解壓并解包

打包并壓縮: tar -Jcvf [目標文件名].tar.xz [原文件名/目錄名]
解壓并解包: tar -Jxvf [原文件名].tar.xz
注:大寫J代表用xz算法來壓縮/解壓。

tar.Z格式(已過時)

方式一:利用已經打包好的tar文件,直接用壓縮命令:

壓縮:compress [原文件名].tar
解壓:uncompress [原文件名].tar.Z
方式二:一次性打包并壓縮、解壓并解包

打包并壓縮: tar -Zcvf [目標文件名].tar.Z [原文件名/目錄名]
解壓并解包: tar -Zxvf [原文件名].tar.Z
注:大寫Z代表用ncompress算法來壓縮/解壓。另,ncompress是早期Unix系統的壓縮格式,但由于ncompress的壓縮率太低,現已過時。

jar格式

壓縮:jar -cvf [目標文件名].jar [原文件名/目錄名]
解壓:jar -xvf [原文件名].jar
注:如果是打包的是Java類庫,并且該類庫中存在主類,那么需要寫一個META-INF/MANIFEST.MF配置文件,內容如下:

Manifest-Version: 1.0
Created-By: 1.6.0_27 (Sun Microsystems Inc.)
Main-class: the_name_of_the_main_class_should_be_put_here
然后用如下命令打包:

jar -cvfm [目標文件名].jar META-INF/MANIFEST.MF [原文件名/目錄名] 這樣以后就能用“java -jar [文件名].jar”命令直接運行主類中的public static void main方法了。

7z格式

壓縮:7z a [目標文件名].7z [原文件名/目錄名]
解壓:7z x [原文件名].7z
注:這個7z解壓命令支持rar格式,即:

7z x [原文件名].rar

其它例子

將文件全部打包成tar包

tar -cvf log.tar log2012.log    僅打包,不壓縮! 
tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 壓縮 
tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 壓縮 

在選項f之后的文件檔名是自己取的,我們習慣上都用?.tar?來作為辨識。?如果加z選項,則以.tar.gz或.tgz來代表gzip壓縮過的tar包;如果加j選項,則以.tar.bz2來作為tar包名。

查閱上述tar包內有哪些文件

tar -ztvf log.tar.gz

由于我們使用?gzip?壓縮的log.tar.gz,所以要查閱log.tar.gz包內的文件時,就得要加上z這個選項了。

將tar包解壓縮

tar -zxvf /opt/soft/test/log.tar.gz

在預設的情況下,我們可以將壓縮檔在任何地方解開的

只將tar內的部分文件解壓出來

tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

我可以透過tar?-ztvf來查閱?tar?包內的文件名稱,如果單只要一個文件,就可以透過這個方式來解壓部分文件!

文件備份下來,并且保存其權限

tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

這個-p的屬性是很重要的,尤其是當您要保留原本文件的屬性時。

在文件夾當中,比某個日期新的文件才備份

tar -N "2012/11/13" -zcvf log17.tar.gz test

備份文件夾內容是排除部分文件:

tar --exclude scf/service -zcvf scf.tar.gz scf/*

其實最簡單的使用 tar 就只要記憶底下的方式即可:

壓 縮:tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄名稱
查 詢:tar -jtv -f filename.tar.bz2
解壓縮:tar -jxv -f filename.tar.bz2 -C 欲解壓縮的目錄

工具說明:

推薦工具:

工具標簽:

對照查詢