linux解压常用命令
简介
我们在操作linux服务器的时候会用到一些解压和压缩命令 .zip .gz .bz2 .tar.gz .tar.bz2
,下面我对常用解压命令进行汇总。
1.tar
tar命令参数前面加”-"与不加“-”的区别:
tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式;
常用参数:
选项 | 介绍 |
---|---|
-z | 是否同时具有gz属性 |
-j | 是否同时具有bz2属性 |
-J | 是否同时具有xz属性 |
-x | 解压缩、提取打包的内容 |
-t | 查看压缩包内容 |
-c | 建立一个压缩,打包文档 |
-C | 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录 |
-v | 显示压缩或者打包的内容 |
-f | 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边 |
-p | 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件 |
-P | 保留绝对路径(大写P) |
1.1.打包
示例:
- a.将
a.txt
和b.txt
打包成一个文件:
tar -cvf test.tar a.txt b.txt
- b.查看
test.tar
文件中的内容:
tar -tf test.tar
- c.提取
test.tar
文件中的内容到/test
目录下:
# 如果不用`-C`指定目录,默认是当前目录。
tar -xf test.tar -C /test
1.2.压缩
linux主要有三种压缩方式:
.gzip
:是公认的压缩这速度最快,压缩大文件的时候与其他的压缩方式相比更加明显,历史最久,应用最广泛的压缩方式.bzip
:压缩形成的文件小,但是可用性不如gzip.xz
:是最新的压缩方式,可以自动提供最佳的压缩率
建议的压缩的时候标明后缀:
参数 | 作用 | 命名方式 |
---|---|---|
-z | 用于gzip压缩方式 | 文件名.tar.gz |
-j | 用于bzip2压缩方式 | 文件名.tar.bz2 |
-J | 用于xz压缩方式 | 文件名.tar.xz |
示例:
- a.用
gzip
的压缩方式将test.log
文件压缩为test.tar.gz
文件:
tar -zcvf test.tar.gz test.log
- b.用
bzip2
的压缩方式将test.log
文件压缩为test.tar.bz2
文件
tar -jcvf test.tar.bz2 test.log
在压缩的过程中,我们可以发现:
压缩速度:gz > bz2 > xz
压缩率:xz > bz2 > gz
1.3.解压
tar命令在解压的时候不需要指明自己压缩的方式它会自己选择跟压缩文件对应的方式去解压:
- a.将
test.tar.gz
解压到当前目录
tar -xf test.tar.gz
- b.将
test.tar.bz2
文件解压在/test
目录下:
tar -xf test.tar.bz2 -C /test
补充
- a.在打包和压缩的过程中,我们有时候会看到这样的语句:tar: 从成员名中删除开头的“/”,这个并不是报错,是因为没有加上-P选项,没有保留原来的绝对路径去打包或者压缩,提取打包的内容跟解压一样,下面举一个例子:
压缩
# 不加'P'
tar -zcvf test.tar.gz /test
# 加'P'
tar -zcvPf test.tar.gz /test
解压
# 不加'P'
tar -xvf test.tar.gz -C /test
# 加'P'
tar -xvPf test.tar.gz -C /test
- b.在使用tar压缩或者打包的时候,可以通过增加--exclude来达到排除指定的文件的目的
# 排除`test`文件夹中的`a.txt`文件
tar -cvf test.tar --exclude=a.txt test
2.zip
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
2.1.zip命令
基本用法:
zip [参数] [压缩包名] [压缩的目录或者文件的路径]
常用参数:
选项 | 介绍 |
---|---|
-m | 将文件压缩后,删除原文件 |
-o | 将压缩文件内的所有文件的最新变动时间设为压缩的时间 |
-q | 安静模式,在压缩的时候不显示指令执行的过程 |
-r | 递归压缩,将自定目录下的所有子文件以及文件一起处理 |
-x | ”文件列表“,压缩时排除文件列表中的文件 |
示例:
- a.压缩目录,将
test
目录压缩为名为test.zip
压缩包:
# 正常压缩,不加`-q`选项,显示压缩过程
zip -r test.zip test
# 加`-q`选项,不显示压缩过程
zip -q -r test.zip test
- b.压缩多个文件,将文件
1.txt
和2.txt
文件压缩名为test.zip
的压缩包:
# 因为压缩的都是文件,可以不用加上`-r`选项
zip -q test.zip 1.txt 2.txt
- c.压缩文件和目录,将
1.txt
文件和test
目录压缩名为test.zip
的压缩包:
zip -q -r test.zip 1.txt test
- d.将
test
目录压缩为test.zip
压缩包,并且排除test
目录中的1.txt
文件:
zip -r test.zip test -x "./test/1.txt"
2.2.unzip命令
基本用法:
unzip [参数] [压缩文件] (-d [目录]) //如果不是用括号里面的内容,则解压文件在当前工作目录
常用参数:
选项 | 介绍 |
---|---|
-c | 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包 |
-l | 显示压缩文件内所包含的文件 |
-t | 检查压缩文件是否正确 |
-v | 执行时显示压缩文件的详细信息 |
-q | 安静模式,执行时不显示任何信息 |
-d | 指定文件解压后存储的目录 |
-x | 指定不要处理压缩文件中的那些文件 |
示例:
- a.将
test.zip
压缩包解压缩的结果打印出来:
unzip -c test.zip
- b.查看
test.zip
压缩包所包含的文件:
unzip -l test.zip
- c.检查
test.zip
压缩文件是否正确:
# 显示全部`ok`表示文件是正确的
unzip -t test.zip
- d.不解压压缩文件
test.zip
,查看压缩包里面的内容(查看显示的文件列表还包含压缩比率):
# 使用`-v`显示的内容比使用`-l`显示的信息更加详细
unzip -v test.zip
- e.将
test.zip
压缩包解压到/data
目录下:
unzip -q test.zip -d /data
总结
后缀 | 解压命令 |
---|---|
.tar | tar –xvf test.tar |
.gz | gzip -d test.gz 或者gunzip test.gz |
.tar.gz、.tgz | tar –xzf test.gz |
.bz2 | bzip2 -d test.bz2或者用bunzip2.bz2 |
.tar.bz2 | tar –xjf test.tar.bz2 |
.Z | uncompress test.Z |
.tar.Z | tar –xZf test.tar.Z |
.rar | unrar e test.rar |
.zip | unzip test.zip |