在Ubuntu系統中,文件的打包與解壓縮是日常操作中常見的需求,比如備份文件、傳輸數據等。tar命令是處理這類操作的核心工具,它可以將多個文件或目錄“打包”成一個文件(稱爲tar包),還能配合gzip、bzip2、xz等壓縮工具進一步減小文件體積。本文將用最簡單的方式講解tar命令的基礎用法,適合剛接觸Linux的初學者。
一、tar命令的核心作用¶
tar的核心功能是“打包”,即把多個文件/目錄合併成一個單獨的文件(無壓縮)。如果需要減小體積,可通過gzip/bzip2/xz工具對tar包進行壓縮,生成.tar.gz/.tar.bz2/.tar.xz等格式的文件。
二、基礎選項與語法¶
tar命令的基本語法是:
tar [選項] [tar包名] [文件/目錄]
其中,[選項]是控制操作的關鍵參數,[tar包名]是要生成的打包文件名,[文件/目錄]是要處理的目標文件或目錄。
三、常用選項詳解(配實例)¶
以下是初學者最常用的tar選項,每個選項搭配一個簡單示例:
1. 基礎操作選項¶
| 選項 | 含義 | 場景示例 |
|---|---|---|
-c |
創建新的tar包(打包) | 生成未壓縮的tar包 |
-x |
從tar包中解壓文件 | 解包/解壓tar包 |
-t |
查看tar包內的文件列表 | 預覽tar包內容 |
-v |
顯示詳細過程(輸出操作的文件) | 讓操作更清晰 |
-f |
指定tar包的文件名 | 必須緊跟包名(如-f my.tar) |
2. 壓縮格式選項(需配合-c/-x使用)¶
| 選項 | 壓縮工具 | 生成文件格式 | 特點 |
|---|---|---|---|
-z |
gzip | .tar.gz |
壓縮速度快,適合中小文件 |
-j |
bzip2 | .tar.bz2 |
壓縮率中等,速度適中 |
-J |
xz | .tar.xz |
壓縮率最高,適合大文件 |
3. 解壓目錄選項¶
| 選項 | 含義 | 場景示例 |
|---|---|---|
-C |
指定解壓到目標目錄 | 避免文件直接解壓到當前目錄 |
四、常用操作實例¶
1. 打包文件(生成未壓縮的tar包)¶
需求:將當前目錄下的所有txt文件打包成files.tar
tar -cvf files.tar *.txt
-c:創建新包-v:顯示詳細過程(如“正在打包 file1.txt”)-f files.tar:指定輸出包名爲files.tar
執行後,當前目錄會生成files.tar文件,體積等於所有txt文件的總和(未壓縮)。
2. 壓縮打包(生成.tar.gz文件)¶
需求:將txt文件打包並壓縮成files.tar.gz(用gzip)
tar -czvf files.tar.gz *.txt
-z:調用gzip壓縮- 其他參數:
-c(創建)、-v(顯示過程)、-f files.tar.gz(指定包名)
生成的files.tar.gz體積會顯著小於未壓縮的files.tar,適合傳輸。
3. 解壓.tar.gz文件¶
需求:解壓files.tar.gz到當前目錄
tar -xzvf files.tar.gz
-x:解壓-z:用gzip解壓縮-v:顯示解壓過程
如果想指定解壓目錄(如/tmp),加-C選項:
tar -xzvf files.tar.gz -C /tmp
4. 查看tar包內容¶
需求:預覽files.tar.gz裏有哪些文件
tar -tvf files.tar.gz
-t:查看tar包內容(不解壓)- 執行後會列出所有文件的名稱、權限等信息。
5. 壓縮爲.tar.bz2或.tar.xz¶
- bzip2壓縮(生成
.tar.bz2):
tar -cjvf files.tar.bz2 *.txt
解壓時用-j:
tar -xjvf files.tar.bz2
- xz壓縮(生成
.tar.xz,壓縮率最高):
tar -cJvf files.tar.xz *.txt
解壓時用-J:
tar -xJvf files.tar.xz
五、注意事項¶
-
壓縮格式與選項必須對應:
-.tar.gz對應-z,解壓用-xzvf;
-.tar.bz2對應-j,解壓用-xjvf;
-.tar.xz對應-J,解壓用-xJvf。 -
-f選項必須緊跟包名:
錯誤寫法:tar -cvf my.tar -v(-v多餘);
正確寫法:tar -cvf my.tar file1.txt。 -
目錄結構保留:
打包目錄時(如tar -cvf docs.tar docs/),解壓後會保留原目錄結構。
六、快速入門總結¶
- 打包+壓縮(生成.gz):
tar -czvf 包名.tar.gz 目標文件 - 解壓.gz:
tar -xzvf 包名.tar.gz - 查看tar包內容:
tar -tvf 包名.tar.gz
掌握以上基礎操作後,就能應對大多數文件打包與解壓縮場景。如果需要更復雜的功能(如排除特定文件),可以進一步學習tar的進階選項,但目前這些基礎用法已足夠入門。