Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)
文章目錄
- 一、命令介紹
- 二、命令語法
- 三、常用選項
- 四、命令示例
- (一)對指定的目錄進行打包(即備份歸檔),不壓縮
- (二)對指定目錄下的內容(不含目錄本身)進行打包(即備份歸檔),不壓縮
- (三)通過通配符篩選特定的文件進行打包,不壓縮
- (四)將指定的多個文件打成一個包,不壓縮
- (五)將多個文件打成一個包并進行壓縮,且保留文件原來的權限和屬性
- (六)將指定目錄下的修改時間在一定范圍的文件進行打包和壓縮
- (七)對指定目錄下的文件進行打包和壓縮,且將特定的文件排除在外
- (八)更新原備份包中的文件,且使用文件的絕對路徑作為文件名
- (九)將文件添加到已存在的文件包里面
- (十)更新指定文件包內的指定文件
- (十一)列出文件包中的所有文件
- (十二)解壓后再查看文件包的內容
- 1.使用 gzip 解壓后再查看文件包(.tar.gz)的內容
- 2.使用 bzip2 解壓后再查看文件包(.tar.bz2)的內容
- (十三)將文件包(.tar)解包,提取文件包里的內容
- (十四)將指定文件包的內容提取到指定的目錄下,且解包時去掉第一層目錄結構
- (十五)只將壓縮檔內的部分文件解壓解包出來
- 五、參考文檔
一、命令介紹
tar 命令可以為 Linux 的文件和目錄創建檔案(就是打包備份文件的意思),也可以在檔案中改變文件,或者向檔案中加入新的文件。tar 最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案。利用 tar 命令,可以把一大堆的文件和目錄全部打包成一個文件,這對于備份文件或將幾個文件組合成為一個文件以便于網絡傳輸是非常有用的。
首先要弄清兩個概念:打包和壓縮。打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。
為什么要區分這兩個概念呢?這源于 Linux 中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆文件先打成一個包(tar命令),然后再用壓縮程序進行壓縮(gzip、bzip2等命令)。
二、命令語法
語法:tar [選項] <參數>
參數:指定要打包的文件或目錄列表
三、常用選項
| -A或--catenate | 新增文件到已存在的備份文件 |
| -B | 設置區塊大小 |
| -c或--create | 建立新的備份文件 |
| -C | 這個選項用在解壓縮,選項后面跟著目錄,若要在特定目錄解壓縮(就是把解壓后的文件放置在特定目錄下),可以使用這個選項 |
| -d | 記錄文件的差別 |
| -x或--extract或--get | 解包,即從備份文件中還原文件,或者說從歸檔文件中提取文件 |
| -t或--list | 列出備份文件的內容 |
| -z或--gzip或--ungzip | 通過gzip指令處理備份文件,通過gzip指令壓縮/解壓縮文件,文件名最好為*.tar.gz |
| -j | 通過bzip2指令壓縮/解壓縮文件,文件名最好為*.tar.bz2 |
| -Z或--compress或--uncompress | 通過compress指令處理備份文件 |
| -J | 大寫J代表用xz算法來壓縮/解壓 |
| -f或--file | 指定備份文件 |
| -v或--verbose | 顯示指令執行過程 |
| -r或--append | 向歸檔文件末尾追加文件,新增文件到已存在的備份文件的末尾部分 |
| -u | update,更新備份文件中的文件 |
| -v | 顯示操作過程 |
| -l | 文件系統邊界設置 |
| -k | 保留原有文件不覆蓋 |
| -m | 保留文件不被覆蓋 |
| -w | 確認壓縮文件的正確性 |
| -p或--same-permissions | 保留原來的文件權限與屬性 |
| -P或--absolute-names | 使用文件名的絕對路徑,不移除文件名稱前的正斜杠/ |
| -N 或 --newer | 只將指定日期更新的文件保存到備份文件里 |
| --exclude | 排除符合范本樣式的文件 |
| -O | 將文件解開到標準輸出 |
四、命令示例
(一)對指定的目錄進行打包(即備份歸檔),不壓縮
對t2目錄進行打包備份,這樣會對t2目錄及目錄下的所有文件(包含隱藏文件)進行打包:
[root@htlwk0001host ~]# tar -cf tt.tar t2說明:-c 是表示創建新的文件包,即創建新的備份文件;-f 用來指定包文件名。
(二)對指定目錄下的內容(不含目錄本身)進行打包(即備份歸檔),不壓縮
這樣只會對 t2 目錄下的內容進行打包,不包含 t2 目錄本身,也不包含 t2 目錄下的隱藏文件:
[root@htlwk0001host ~]# tar -cf tt.tar t2/*(三)通過通配符篩選特定的文件進行打包,不壓縮
這條命令是將所有 .jpg 的文件打成一個名為 all.tar 的包:
[root@htlwk0001host ~]# tar -cf all.tar *.jpg(四)將指定的多個文件打成一個包,不壓縮
[root@htlwk0001host ~]# tar -cfv archive.tar foo bar # 將foo和bar這兩個文件打包成archive.tar,且顯示打包的過程信息說明:-c 是表示創建新的文件包,即創建新的備份文件;-f 用來指定包文件名;-v 顯示打包的過程信息。
(五)將多個文件打成一個包并進行壓縮,且保留文件原來的權限和屬性
[root@htlwk0001host ~]# tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log說明:-c 是表示創建新的文件包,即創建新的備份文件;-f 用來指定包文件名;-v 顯示打包的過程信息;-z 通過gzip指令壓縮文件;-p 保留文件原來的權限和屬性。
(六)將指定目錄下的修改時間在一定范圍的文件進行打包和壓縮
把test目錄下的修改時間大于"2012/11/13"的文件進行打包和壓縮:
[root@htlwk0001host ~]# tar -N "2012/11/13" -zcvf log17.tar.gz test [root@htlwk0001host ~]# tar -N "2012/11/13" -jcvf log17.tar.bz2 test說明:-N 只將指定日期更新的文件保存到備份文件里;-z 表示打包后,以 gzip 壓縮;-j 表示打包后,以 bzip2 壓縮。
(七)對指定目錄下的文件進行打包和壓縮,且將特定的文件排除在外
備份且壓縮 scf 目錄下的文件,且把 scf/service 目錄排除在外:
[root@htlwk0001host ~]# tar --exclude scf/service -zcvf scf.tar.gz scf/*(八)更新原備份包中的文件,且使用文件的絕對路徑作為文件名
[root@htlwk0001host ~]# tar -Puf backup.tar /home/user說明:-P 使用文件名的絕對路徑,不移除文件名稱前的正斜杠 /;-u 表示更新原包文件中的文件
(九)將文件添加到已存在的文件包里面
將所有 .gif 的文件增加到 all.tar 的包里面去:
[root@htlwk0001host ~]# tar -rf all.tar *.gif說明:-r 向歸檔文件末尾追加文件。
(十)更新指定文件包內的指定文件
這條命令是更新文件包 all.tar 中 logo.gif 文件:
[root@htlwk0001host ~]# tar -uf all.tar logo.gif(十一)列出文件包中的所有文件
列出包文件 all.tar 中的所有文件:
[root@htlwk0001host ~]# tar -tf all.tar說明:-t 表示列出備份包內的文件
列出包文件 archive.tar 中的所有文件,且顯示指令執行的過程:
[root@htlwk0001host ~]# tar -tvf archive.tar(十二)解壓后再查看文件包的內容
1.使用 gzip 解壓后再查看文件包(.tar.gz)的內容
[root@htlwk0001host ~]# tar -ztvf log.tar.gz2.使用 bzip2 解壓后再查看文件包(.tar.bz2)的內容
[root@htlwk0001host ~]# tar -jtvf log.tar.bz2(十三)將文件包(.tar)解包,提取文件包里的內容
從 archive.tar 提取所有文件:
[root@htlwk0001host ~]# tar -xf archive.tar(十四)將指定文件包的內容提取到指定的目錄下,且解包時去掉第一層目錄結構
[root@htlwk0001host ~]# tar -xvf portal-web-v2.0.0.tar --strip-components 1 -C /home/wwwroot/liaowenxiong/portal說明:--strip-components 1表示解包的時候去掉第一層目錄結構,--strip-components 2表示解包的時候去掉前兩層的目錄結構。
舉例:/root/src/opp/lll.txt
第一層目錄:/root/
第二層目錄:/root/src/
(十五)只將壓縮檔內的部分文件解壓解包出來
[root@htlwk0001host ~]# tar -zxvf /opt/soft/test/log30.tar.gz log2013.log五、參考文檔
線上工具
總結
以上是生活随笔為你收集整理的Linux 命令之 tar 命令-打包和备份的归档工具(附压缩/解压工具)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 至少 7 年安全支持,Fairphone
- 下一篇: Linux 命令之 rpm -- RPM