Linux壓縮及解壓縮命令tar|zip|rar|xz操作方法
作者: 蘇丙榅
原文鏈接: https://subingwen.cn/linux/commpress/
不管是在Linux還是其他操作系統(tǒng)中,關(guān)于數(shù)據(jù)的壓縮和解壓縮
操作是經(jīng)常被用到的。由于在windows平臺文件的相關(guān)操作被傻瓜化了,到了Linux平臺讓好多小伙伴感覺有點(diǎn)束手無策,本篇文章中主要為大家講解基于Linux的常用壓縮包操作,格式包含:tar.gz,
.tgz
, .tar.bz2
, .zip
, .rar
, .tar.xz
。
1. tar
在Linux操作系統(tǒng)中默認(rèn)自帶兩個(gè)原始的壓縮工具分別是 gzip
和bzip2
, 但是它們都有先天的缺陷, 不能對壓縮文件打包
, 每個(gè)文件都會生成一個(gè)單獨(dú)的壓縮包
, 并且壓縮之后不會保留原文件, 這是一件叔能忍嬸也不能忍的事情。
Linux中自帶一個(gè)打包工具
,叫做tar
, 默認(rèn)情況下該工具是不能進(jìn)行壓縮操作的,在這種情況下tar
和gzip, bzip2
就聯(lián)姻了, 各自發(fā)揮各自的優(yōu)勢, Linux下最強(qiáng)大
的打包壓縮工具至此誕生。
我們在使用tar進(jìn)行壓縮和解壓縮的時(shí)候, 只需要指定相對用的參數(shù), 在其內(nèi)部就會調(diào)用對應(yīng)的壓縮工具gzip或者bzip2完成指定的操作
。
注
:tar 由于是linux自帶的
,不需要聯(lián)網(wǎng)進(jìn)行下載安裝。 因此一般在板端,基本使用tar
命令進(jìn)行解壓縮
。
1.1 壓縮 (.tar.gz .tar.bz2 .tgz)
如果使用tar
完成文件壓縮和打包
, 涉及的參數(shù)如下, 在使用過程中參數(shù)
沒有先后順序:
- c: 創(chuàng)建壓縮文件
- z: 使用gzip的方式進(jìn)行文件壓縮
- j: 使用bzip2的方式進(jìn)行文件壓縮
- v: 壓縮過程中顯示壓縮信息, 可以省略不寫
- f: 指定壓縮包的名字
(1) 壓縮為.tar.gz
格式的壓縮命令如下:
tar zcvf xxx.tar.gz ./abc
其中z
表示使用gzip
的方式進(jìn)行文件壓縮, c
表示創(chuàng)建壓縮文件
(2) 壓縮為.tar.bz2
格式的壓縮命令如下:
tar jcvf xxx.tar.bz2 abc b.txt c.txt
其中 j
表示 使用bzip2
的方式進(jìn)行文件壓縮, 將文件夾abc
以及文件b.txt
, c.txt
壓縮為文件xxx.tar.bz2
案例(使用gzip
的方式進(jìn)行文件壓縮)
# 查看目錄內(nèi)容 [root@VM-8-14-centos ~/luffy]# ls get onepiece.txt robin.txt # 壓縮目錄中所有文件, 如果要壓縮某幾個(gè)文件, 直接指定文件名即可 [root@VM-8-14-centos ~/luffy]# tar zcvf all.tar.gz * get/ # ....... 壓縮信息 get/link.lnk # ....... 壓縮信息 get/onepiece/ # ....... 壓縮信息 get/onepiece/haha.txt get/link.txt onepiece.txt robin.txt # 查看目錄文件, 多了一個(gè)壓縮文件 all.tar.gz [root@VM-8-14-centos ~/luffy]# ls all.tar.gz get onepiece.txt robin.txt
案例 使用bz2
的方式進(jìn)行文件壓縮
# 查看目錄內(nèi)容 [root@VM-8-14-centos ~/luffy]# ls all.tar.gz get onepiece.txt robin.txt # 壓縮目錄中除 all.tar.gz 的文件和目錄 [root@VM-8-14-centos ~/luffy]# tar jcvf part.tar.bz2 get onepiece.txt robin.txt get/ # ....... 壓縮信息 get/link.lnk # ....... 壓縮信息 get/onepiece/ # ....... 壓縮信息 get/onepiece/haha.txt get/link.txt onepiece.txt robin.txt # 查看目錄信息, 多了一個(gè)壓縮文件 part.tar.bz2 [root@VM-8-14-centos ~/luffy]# ls all.tar.gz get onepiece.txt part.tar.bz2 robin.txt
1.2 解壓縮 (.tar.gz .tar.bz2 .tgz)
如果使用
tar
進(jìn)行文件的解壓縮
, 涉及的參數(shù)如下, 在使用過程中參數(shù)沒有先后順序:
x
: 釋放壓縮文件內(nèi)容z
: 使用gzip的方式進(jìn)行文件壓縮, 壓縮包后綴為.tar.gzj
: 使用bzip2的方式進(jìn)行文件壓縮, 壓縮包后綴為.tar.bz2v
: 解壓縮過程中顯示解壓縮信息f
: 指定壓縮包的名字
使用以上參數(shù)是將壓縮包解壓到當(dāng)前目錄, 如果需要解壓到指定目錄, 需要指定參數(shù)
-C
。
一般認(rèn)為.tgz
文件就等同于.tar.gz
文件, 解壓縮方式是相同的。解壓的語法格式如下:
# 語法1: 解壓到當(dāng)前目錄中 $ tar 參數(shù) 壓縮包名 # 語法2: 解壓到指定目錄中 $ tar 參數(shù) 壓縮包名 -C 解壓目錄
(1) 解壓 .tar.gz
格式文件
tar zxvf xxx.tar.gz -C abc
其中x
表示解壓縮命令,z
表示解壓縮的是帶tar.gz
格式的文件, -C
指定解壓后存放的目錄
(2) 解壓.tar.bz2
格式文件:
tar jxvf xxx.tar.bz2 -C temp
其中x
表示解壓縮命令,j
表示解壓縮的是帶tar.bz2
格式的文件, -C
指定解壓后存放的目錄
舉例: 使用gzip的方式進(jìn)行文件解壓縮
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls all.tar.gz get onepiece.txt part.tar.bz2 robin.txt temp # 將 all.tar.gz 壓縮包解壓縮到 temp 目錄中 [root@VM-8-14-centos ~/luffy]# tar zxvf all.tar.gz -C temp get/ # 解壓縮文件信息 get/link.lnk # 解壓縮文件信息 get/onepiece/ # 解壓縮文件信息 get/onepiece/haha.txt # 解壓縮文件信息 get/link.txt onepiece.txt robin.txt # 查看temp目錄內(nèi)容, 都是從壓縮包中釋放出來的 [root@VM-8-14-centos ~/luffy]# ls temp/ get onepiece.txt robin.txt
舉例: 使用bzip2
的方式進(jìn)行文件解壓縮
# 刪除 temp 目錄中的所有文件 [root@VM-8-14-centos ~/luffy]# rm temp/* -rf # 查看 luffy 目錄中的文件信息 [root@VM-8-14-centos ~/luffy]# ls all.tar.gz get onepiece.txt part.tar.bz2 robin.txt temp # 將 part.tar.bz2 中的文件加壓縮到 temp 目錄中 [root@VM-8-14-centos ~/luffy]# tar jxvf part.tar.bz2 -C temp get/ # 解壓縮文件信息 get/link.lnk # 解壓縮文件信息 get/onepiece/ # 解壓縮文件信息 get/onepiece/haha.txt # 解壓縮文件信息 get/link.txt onepiece.txt robin.txt # 查看 temp 目錄中的文件信息 [root@VM-8-14-centos ~/luffy]# ls temp/ get onepiece.txt robin.txt
2. zip
zip格式的壓縮包在Linux中也是很常見的, 在某些版本中需要安裝
才能使用
Ubuntu
$ sudo apt install zip # 壓縮 $ sudo apt install unzip # 解壓縮
CentOS
# 因?yàn)?centos 可以使用 root 用戶登錄, 基于 root 用戶安裝軟件, 不需要加 sudo $ sudo yum install zip # 壓縮 $ sudo yum install unzip # 解壓縮
2.1 壓縮 (.zip)
使用
zip壓縮
目錄需要注意一點(diǎn), 必須要添加參數(shù)-r
, 這樣才能將子目錄中的文件一并壓縮
, 如果要壓縮的文件中沒有目錄, 該參數(shù)就可以不寫了。
另外使用zip壓縮文件, 會自動生成文件后綴
.zip
, 因此就不需要額外指定了。
# 語法: 后自動添加壓縮包后綴 .zip, 如果要壓縮目錄, 需要添加參數(shù) r $ zip [-r] 壓縮包名 要壓縮的文件
舉例:
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls get onepiece.txt robin.txt temp # 壓縮目錄 get 和文件 onepiece.txt robin.txt 得到壓縮包 all.zip(不需要指定后綴, 自動添加) [root@VM-8-14-centos ~/luffy]# zip all onepiece.txt robin.txt get/ -r adding: onepiece.txt (stored 0%) adding: robin.txt (stored 0%) adding: get/ (stored 0%) adding: get/link.lnk (stored 0%) # 子目錄中的文件也被壓縮進(jìn)去了 adding: get/onepiece/ (stored 0%) # 子目錄中的文件也被壓縮進(jìn)去了 adding: get/onepiece/haha.txt (stored 0%) # 子目錄中的文件也被壓縮進(jìn)去了 adding: get/link.txt (stored 0%) # 子目錄中的文件也被壓縮進(jìn)去了 # 查看目錄文件信息, 多了一個(gè)壓縮包文件 all.zip [root@VM-8-14-centos ~/luffy]# ls all.zip get onepiece.txt robin.txt temp
2.2 解壓縮 (.zip)
對應(yīng)zip格式的文件解壓縮, 必須要使用
unzip
命令, 和壓縮的時(shí)候使用的命令是不一樣的。如果壓縮包中的文件要解壓到指定目錄
需要指定參數(shù)-d
, 默認(rèn)是解壓縮到當(dāng)前目錄中。
# 語法1: 解壓到當(dāng)前目錄中 $ unzip 壓縮包名 # 語法: 解壓到指定目錄, 需要添加參數(shù) -d $ unzip 壓縮包名 -d 解壓目錄
舉例:
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls all.zip get onepiece.txt robin.txt temp # 刪除 temp 目錄中的所有文件 [root@VM-8-14-centos ~/luffy]# rm temp/* -rf # 將 all.zip 解壓縮到 temp 目錄中 [root@VM-8-14-centos ~/luffy]# unzip all.zip -d temp/ Archive: all.zip extracting: temp/onepiece.txt # 釋放壓縮的子目錄中的文件 extracting: temp/robin.txt # 釋放壓縮的子目錄中的文件 creating: temp/get/ extracting: temp/get/link.lnk creating: temp/get/onepiece/ extracting: temp/get/onepiece/haha.txt # 釋放壓縮的子目錄中的文件 extracting: temp/get/link.txt # 查看 temp 目錄中的文件信息 [root@VM-8-14-centos ~/luffy]# ls temp/ get onepiece.txt robin.txt
3. rar
rar
這種壓縮格式在Linux中并不常用
, 這是Windows常用的壓縮格式, 如果想要在Linux壓縮和解壓這種格式的文件需要額外安裝
對應(yīng)的工具, 不同版本的Linux安裝方式也是不同的。
Ubuntu
# 執(zhí)行在線下載命令即可 $ sudo apt install rar
CentOS
# 需要下載安裝包, 官方地址: https://www.rarlab.com/download.htm # 從下載頁面找到 Linux 版本的下載鏈接并復(fù)制鏈接地址, 使用 wget 下載到本地 $ wget https://www.rarlab.com/rar/rarlinux-x64-6.0.0.tar.gz # 將下載得到的 rarlinux-x64-6.0.0.tar.gz 壓縮包解壓縮, 得到解壓目錄 rar $ tar zxvf rarlinux-x64-6.0.0.tar.gz # 將得到的解壓目錄移動到 /opt 目錄中 (因?yàn)?opt軟件安裝目錄, 移動是為了方便管理, 不移動也沒事兒) # 該操作需要管理員權(quán)限, 我是使用 root 用戶操作的 $ mv ./rar /opt # 給 /opt/rar 目錄中的可執(zhí)行程序添加軟連接, 方便命令解析器可以找到該壓縮命令 $ ln -s /opt/rar/rar /usr/local/bin/rar $ ln -s /opt/rar/unrar /usr/local/bin/unrar
該方法在任何版本的Linux系統(tǒng)中都適用
3.1 壓縮 (.rar)
使用rar
壓縮過程中的注意事項(xiàng)和zip是一樣的, 如果壓縮的是目錄, 需要指定參 -r,
如果只壓縮文件就不需要添加了。壓縮過程中需要使用參數(shù) a (archive)
, 壓縮歸檔
的意思。
rar工具在生成壓縮包的時(shí)候也會自動添加后綴, 名字為.rar, 因此我們只需要指定壓縮包的名字。
語法
# 文件壓縮, 需要使用參數(shù) a, 壓縮包名會自動添加后綴 .rar # 如果壓縮了目錄, 需要加參數(shù) -r # 語法: $ rar a 壓縮包名 要壓縮的文件 [-r]
舉例
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls get onepiece.txt robin.txt temp # 壓縮文件 onepiece.txt, robin.txt 和目錄 get/ 到要是文件 all.rar 中 [root@VM-8-14-centos ~/luffy]# rar a all onepiece.txt get/ robin.txt -r RAR 6.00 Copyright (c) 1993-2020 Alexander Roshal 1 Dec 2020 Trial version Type 'rar -?' for help Evaluation copy. Please register. Creating archive all.rar Adding onepiece.txt OK Adding get/link.lnk OK # 子目錄中的文件也被壓縮了 Adding get/onepiece/haha.txt OK # 子目錄中的文件也被壓縮了 Adding get/link.txt OK # 子目錄中的文件也被壓縮了 Adding robin.txt OK Adding get/onepiece OK Done [root@VM-8-14-centos ~/luffy]# ls all.rar get onepiece.txt robin.txt temp
3.2 解壓縮 (.rar)
解壓縮.rar
格式的文件的時(shí)候, 可以使用 rar也可以使用unrar, 操作方式是一樣的, 需要添加參數(shù) x,
默認(rèn)是將壓縮包內(nèi)容釋放到當(dāng)前目錄中, 如果要釋放到指定目錄直接指定解壓目錄名即可, 不需要使用任何參數(shù)。
語法
# 解壓縮: 需要參數(shù) x # 語法: 解壓縮到當(dāng)前目錄中 $ rar/unrar x 壓縮包名字 # 語法: 解壓縮到指定目錄中 rar/unrar x 壓縮包名字 解壓目錄
舉例:
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls all.rar get onepiece.txt robin.txt temp # 刪除 temp 目錄中的所有文件 [root@VM-8-14-centos ~/luffy]# rm temp/* -rf # 將 all.rar 中的文件解壓縮到 temp 目錄中 [root@VM-8-14-centos ~/luffy]# rar x all.rar temp/ RAR 6.00 Copyright (c) 1993-2020 Alexander Roshal 1 Dec 2020 Trial version Type 'rar -?' for help Extracting from all.rar Extracting temp/onepiece.txt OK Creating temp/get OK Extracting temp/get/link.lnk OK # 子目錄文件也被釋放出來了 Extracting temp/get/link.lnk OK # 子目錄文件也被釋放出來了 Extracting temp/get/link.lnk OK # 子目錄文件也被釋放出來了 Creating temp/get/onepiece OK Extracting temp/get/link.lnk OK # 子目錄文件也被釋放出來了 Extracting temp/get/link.lnk OK # 子目錄文件也被釋放出來了 Extracting temp/get/onepiece/haha.txt OK Extracting temp/get/link.txt OK Extracting temp/robin.txt OK All OK # 查看 temp 目錄中文件信息 [root@VM-8-14-centos ~/luffy]# ls temp/ get onepiece.txt robin.txt
4. xz
.xz格
式的文件壓縮和解壓
縮都相對比較麻煩
, 通過一個(gè)命令是完不成對應(yīng)的操作的, 需要通過兩步操作
才行。并且操作過程中需要使用tar
工具進(jìn)行打包, 壓縮使用的則是 xz
工具
4.1 壓縮(.tar.xz)
創(chuàng)建文件的步驟如下, 首先 將需要壓縮的文件打包 tar cvf xxx.tar files
, 然后再對打包文件進(jìn)行壓縮 xz -z xxx.tar
, 這樣我們就可以得到一個(gè)打包之后的壓縮文件了。
使用 xz工具壓縮文件的時(shí)候需要添加參數(shù) -z
語法
# 第一步 $ tar cvf xxx.tar 要壓縮的文件 # 第二步, 最終得到一個(gè)xxx.tar.xz 格式的壓縮文件 $ xz -z xxx.tar
舉例
# 查看目錄文件信息 [root@VM-8-14-centos ~/luffy]# ls get onepiece.txt robin.txt temp # 將文件 onepiece.txt, robin.txt 和目錄 get 打包到 all.tar 中 [root@VM-8-14-centos ~/luffy]# tar cvf all.tar onepiece.txt robin.txt get/ onepiece.txt robin.txt get/ get/link.lnk get/onepiece/ get/onepiece/haha.txt get/link.txt # 查看目錄文件信息, 多了一個(gè)打包文件 all.tar [root@VM-8-14-centos ~/luffy]# ls all.tar get onepiece.txt robin.txt temp # 使用 xz 工具壓縮打包文件 all.tar [root@VM-8-14-centos ~/luffy]# xz -z all.tar # 最終得到了壓縮之后的打包文件 all.tar.xz [root@VM-8-14-centos ~/luffy]# ls all.tar.xz get onepiece.txt robin.txt temp
4.2 解壓縮(.tar.xz)
解壓縮的步驟和壓縮的步驟相反, 需要先解壓縮, 然后將文件包中的文件釋放出來。
使用xz
工具解壓需要使用參數(shù)-d
。
語法
# 第一步: 壓縮包解壓縮, 得到 xxx.tar $ xz -d xxx.tar.xz # 第二步: 將 xxx.tar 中的文件釋放到當(dāng)前目錄 $ tar xvf xxx.tar
舉例
# 查看目錄中文件信息, 有一個(gè) all.tar.xz [root@VM-8-14-centos ~/luffy]# ls all.tar.xz get onepiece.txt robin.txt temp # 將 all.tar.xz 解壓縮, 得到 all.tar [root@VM-8-14-centos ~/luffy]# xz -d all.tar.xz # 查看目錄文件, 得到了 all.tar [root@VM-8-14-centos ~/luffy]# ls all.tar get onepiece.txt robin.txt temp # 釋放 all.tar 到當(dāng)前目錄 [root@VM-8-14-centos ~/luffy]# tar xvf all.tar onepiece.txt robin.txt get/ get/link.lnk get/onepiece/ get/onepiece/haha.txt get/link.txt
到此這篇關(guān)于Linux壓縮及解壓縮命令tar|zip|rar|xz的文章就介紹到這了,更多相關(guān)linux壓縮和解壓縮命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一天一個(gè)shell命令 文本操作系列-linux dd使用教程
dd 是 Linux/UNIX 下的一個(gè)非常有用的命令,作用是用指定大小的塊拷貝一個(gè)文件,并在拷貝的同時(shí)進(jìn)行指定的轉(zhuǎn)換2016-05-05詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟
這篇文章主要介紹了詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟的相關(guān)資料,需要的朋友可以參考下2015-11-11編寫shell腳本實(shí)現(xiàn)tomcat定時(shí)重啟的方法
這篇文章主要介紹了編寫shell腳本實(shí)現(xiàn)tomcat定時(shí)重啟的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Shell腳本實(shí)現(xiàn)啟動PHP內(nèi)置FastCGI Server
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)啟動PHP內(nèi)置FastCGI Server,本文講解了一些需求過程,并給出了實(shí)現(xiàn)需求的shell腳本,需要的朋友可以參考下2015-04-04