Linux命令篇 - tar 命令

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章