tar
GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.
tar
:用於壓縮和解壓縮文件;
格式
:tar [OPTION...] [FILE]...
# tar命令常用的功能
# 以下功能是獨立的, 一次只能使用一個
- -c: 創建新的tar文件;
- -x: 解開tar文件;
- -t: 列出tar文件中含的文件的信息;
- -r: 附加新的文件到tar文件中;
# tar命令常用的參數
- -z: 使用gzip進行解壓縮
- -j: 使用bzip2進行解壓縮
- -Z: 使用compress進行解壓縮
- -v: 顯示解壓縮執行過程
- -f: 指定要處理的文件名
# 壓縮
- tar -cvf xxx.tar /data # 僅對 data 目錄打包不進行壓縮
- tar -zcvf xxx.tar /data # 對 data 目錄打包並以 tar.gz 方式壓縮
- tar -jcvf xxx.tar /data # 對 data 目錄打包並以 tar.bz2 方式壓縮
# 解壓
- tar -xvf xxx.tar # 解包
- tar -zxvf xxx.tar.gz # 解壓 tar.gz 格式壓縮包
- tar -jxvf xxx.tar.bz2 # 解壓 tar.bz2 格式壓縮包
- tat -zxvf xxx.tar.gz etc/passwd # 解壓 tar.gz 格式壓縮包, 直解壓部分文件夾
常用參數:
OPTIONS | 意義 |
---|---|
-A | 新增文件到以存在的備份文件 |
-B | 設置區塊大小 |
-c | 建立新的備份文件 |
-C <目錄> | 僅壓縮指定目錄裏的內容或解壓縮到指定目錄 |
-d | 記錄文件的差別 |
-x | 從歸檔文件中提取文件 |
-t | 列出備份文件的內容 |
-z | 通過gzip指令壓縮/解壓縮文件,文件名最好爲*.tar.gz |
-Z | 通過compress指令處理備份文件 |
-f<備份文件> | 指定備份文件 |
-v | 顯示指令執行過程 |
-r | 添加文件到已經壓縮的文件 |
-u | 添加改變了和現有的文件到已經存在的壓縮文件 |
-j | 通過bzip2指令壓縮/解壓縮文件,文件名最好爲*.tar.bz2 |
-v | 顯示操作過程 |
-l | 文件系統邊界設置 |
-k | 保留原有文件不覆蓋 |
-m | 保留文件不被覆蓋 |
-w | 確認壓縮文件的正確性 |
-p | 保留原來的文件權限與屬性 |
-P | 使用文件名的絕對路徑,不移除文件名稱前的“/”號 |
-N <日期格式> | 只將較指定日期更新的文件保存到備份文件裏 |
-- -exclude=<範本樣式> | 排除符合範本樣式的文件 |
-- -remove-files | 歸檔/壓縮之後刪除源文件 |
參考案例:
壓縮
- 使用
gzip
壓縮格式對目錄壓縮.tar.gz
# 使用gzip壓縮格式對某個目錄進行打包操作, 顯示壓縮過程, 壓縮包規範後綴爲.tar.gz
# 格式: tar -zcvf 壓縮名稱.tar.gz 文件目錄
# 格式: tar zcvf 壓縮名稱.tar.gz 文件目錄
$ tar -zcvf backup1.tar.gz /etc
......
/etc/selinux/targeted/active/modules/100/passenger/cil
/etc/selinux/targeted/active/modules/100/passenger/hll
/etc/selinux/targeted/active/modules/100/passenger/lang_ext
/etc/selinux/targeted/active/modules/100/pcmcia/
......
- 使用
bzip2
壓縮格式對目錄壓縮.tar.bz2
# 使用bzip2壓縮格式對某個目錄進行打包操作, 顯示壓縮過程, 壓縮包規範後綴爲.tar.bz2
# 格式: tar -jcvf 壓縮名稱.tar.bz2 /etc
$ tar -jcvf backup2.tar.bz2 /etc
# 問題描述:
## 使用 bz2 需要安裝 bzip2 否則會出現 `tar (child):bzip2: Cannot exec :Nosuch of file or directory` 錯誤
# 解決方法:
## $ yum install -y bzip2 # 安裝 bzip2 即可解決
- 對當前目錄的
.cfg
後綴文件進行打包,不進行壓縮
# 將當前工作目錄內所有以.cfg爲後綴的文件打包, 不進行壓縮
$ tar -cvf backup3.tar *.cfg
- 對當前目錄的
.cfg
後綴文件進行打包,不進行壓縮,並刪除原始文件
$ tar cvf backup4.tar *.cfg --remove-files
解壓
- 對
.tar
格式壓縮文件解壓,解壓到當前工作目錄
$ tar -xvf backup3.tar
- 對
tar.gz
格式壓縮文件解壓,解壓到當前工作目錄
$ tar -zxvf backup1.tar.gz
- 對
tar.bz2
格式壓縮文件解壓,解壓到當前工作目錄
$ tar -jxvf backup2.tar.bz2
# 問題描述:
## 在進行 backup2.tar.bz2 解壓時出現: `tar (child): bzip2: Cannot exec: No such file or directory` 錯誤
# 問題解決:
## $ yum install -y bzip2 # 安裝 bzip2 即可解決
- 對
tar.gz
格式壓縮文件解壓,解壓到/etc
工作目錄
$ tar -zxvf backup1.tar.gz -C /etc
其它操作
- 查看壓縮包內文件信息(無需解壓)
$ tar -tvf backup4.tar