Linux压缩及解压命令

一、文件打包和压缩命令介绍

linux系统文件压缩格式,常用的有*.tar.gz、*.gz、*.zip、*.tar,还有*.rar、.7z、.bz2、.tar.xz、.tar.bz2、.xz

二、zip压缩和unzip解压缩命令

1.zip压缩命令

格式:

zip filename.zip dirname

常用参数说明:

  -r         递归打包包含子目录的全部内容

  -q        不显示指令执行过程,安静模式

  -o        表示输出文件,其后紧跟打包输出文件名

  -v        显示指令执行过程或显示版本信息。

  -m       将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

  -x<范本样式>   压缩时排除符合条件的文件。

  -e        表示加密压缩

  -d        从压缩文件内删除指定的文件。

  -l          压缩文件时,把LF字符 置换成LF+CR字 符。

  -ll         压缩文件时,把LF+CR字 符置换成LF字符。

  -<压缩效率>  压缩效率是一个介于1-9的数值。

案例:

1)打包logs目录下的文件。进入logs目录进行打包

zip -o test.zip *.log
# 将 test 目录打包成一个文件
zip -r -q -o test.zip /home/test
# 使用 du 命令查看打包后文件的大小
du -h test.zip
# 使用 file 命令查看文件大小和类型
file test.zip

2)查找包含2019-09的log文件并打包成压缩文件

find . -name "*2019-09*" -type f | grep -v "txt" | grep -v "manager" |grep -v "localhost" | xargs zip catalina201909_backuplog.zip
find . -name "*2019-09*" -type f | grep -v "catalina" | xargs zip otherl201909_backup.zip

3)从压缩文件中删除指定文件

#删除打包文件中指定文件
zip -d test.zip test.txt
#删除打包文件中指定目录下的文件
zip -d test.zip test/test.log

4)向压缩文件中添加指定文件

# 注意:此命令相当于将指定文件移动到压缩文件中,源文件会被删除
zip -m test.zip localhost_access_log.--.txt

5)压缩文件时排除指定文件

zip test.zip test/* -x test/test.log

6)设置压缩级别为9和1(9最大,1最小),重新打包

# 1表示最快压缩但体积大,9表示体积最小但耗时最久,-x 排除上一次我们创建的zip文件,路径必需为绝对路径
zip -r - -q -o test_9.zip /home/test -x ~/*.zip
zip -r -1 -q -o test_1.zip /home/test -x ~/*.zip
# 再用 du 命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小,-h 表示可读,-d 表示所查看文件的深度
du -h -d 0 *.zip ~ | sort

PS: 关于 zip 命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改
shell 中的变量有不同类型,可参与运算,有作用域限定

# 使用 -l 参数将 LF 转换为 CR+LF
zip -r -l -o test.zip /home/test

2..unzip解压命令

格式:

unzip filename.zip

参数说明:

  -l      不解压,只显示压缩文件内所包含的文件 

  -P<密码>   使用zip的密码选项。

  -q       执行时不显示任何信息。

  -d         指定解压目录

  -p         与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
  -t      检查压缩文件是否正确
  -u      与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
  -v      执行是时显示详细的信息
  -z      仅显示压缩文件的备注文字
  -a      对文本文件进行必要的字符转换
  -b      不要对文本文件进行字符转换
  -C      压缩文件中的文件名称区分大小写
  -j      不处理压缩文件中原有的目录路径
  -L      将压缩文件中的全部文件名改为小写
  -M      将输出结果送到more程序处理
  -n      解压缩时不要覆盖原有的文件
  -o      不必先询问用户,unzip执行后覆盖原有文件

  -O      指定编码格式
  -s      将文件名中的空白字符转换为底线字符
  -V      保留VMS的文件版本信息
  -X      解压缩时同时回存文件原来的UID/GID

案例:

1)解压到当前目录

unzip test.zip

2)解压到指定目录,不输出详细文件信息(安静模式)

unzip -q test.zip -d test

3)不解压,只查看压缩文件内容

unzip -l test.zip

4)指定编码格式解压

unzip -O GBK 中文压缩文件.zip

三、tar打包命令

tar中文手册参考网址:http://linux.51yip.com/search/tar

在 Linux 上面常用的是 tar 工具,tar 原本只是一个打包工具,但同时实现了对 7z,gzip,xz,bzip2 等工具的支持,这些压缩工具本身只能实现对文件或目录(单独压缩目录中的文件)的压缩,没有实现对文件的打包压缩,tar 的解压和压缩都是同一个命令,只需参数不同,使用比较方便。

格式:

 解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname

常用参数:

  -c,--create          打包

  -x, --extract, --get         解压

  -d, --diff, --compare        比较存档与当前文件的不同之处

  -z,--gzip, --gunzip, --ungzip      通过 gzip 过滤归档

  -J,--xz             通过 xz过滤归档

  -j, --bzip2                       通过 bzip2 过滤归档

  -y, --bzip2, --bunzip2        用 bzip2 对存档压缩或解压

  -Z, --compress, --uncompress    用 compress 对存档压缩或解压

  -C              指定解压目录

  -t, --list              只查看,不解包,列出存档中的文件

  -h, --dereference        不转储动态链接,转储动态链接指向的文件。

  -p, --same-permissions, --preserve-permissions  展开所有保护信息,保留文件属性

  -v, --verbose            显示详细处理文件信息

  -f              指定创建的文件名(注意文件名必须紧跟在 -f 参数之后)

  --version            显示tar版本

  --exclude FILE        不把指定文件包含在内

  -X, --exclude-from FILE    从指定文件中读入不想包含的文件的列表

  -P, --absolute-paths      不要从文件名中去除 '/'

  -u              更新

  -r              表示增加文件的意思。

案例:

1)创建tar包

 tar -cf test.tar .

2)解包一个文件 (-x参数) 到指定路径的已存在目录 (-C参数)

mkdir test
tar -xf test.tar -C test

3)查看打包文件内容,不解压

tar -tf test.tar

4)保留文件属性和跟随链接(符号链接或软链接),有时候我们使用tar备份文件当你在其他主机还原时希望保留文件的属性(-p参数)和备份链接指向的源文件而不是链接本身(-h参数)

tar -cphf test.tar test

5)以使用 gzip 工具创建 *.tar.gz 文件为例来说明,只需在创建 tar 文件的基础上添加 -z 参数,使用 gzip 来压缩文件

tar -czf test.tar.gz test

打包test文件不包括test目录下的test.txt文件

tar -czvf test.tar.gz test --exclude test/test.txt

6)解压 *.tar.gz 文件

tar -xzf test.tar.gz

7)要使用其他的压缩工具创建或解压相应文件只需要更改一个参数即可

|压缩文件格式   |参数|
|:-----------:|:--:|
|*.tar.gz | -z |
|*.tar.xz | -J |
|*tar.bz2 | -j |

8)相关解压命令

1、*.tar       用 tar –xvf 解压
、*.gz        用 gzip -d或者gunzip 解压
、*.tar.gz和*.tgz 用 tar –xzf 解压
、*.bz2       用 bzip2 -d或者用bunzip2 解压
、*.tar.bz2    用 tar –xjf 解压
、*.Z        用 uncompress 解压
、*.tar.Z      用tar –xZf 解压
、*.rar       用 unrar e解压
、*.zip       用 unzip 解压

9)添加文件到压缩包中,将test.txt文件添加到test.tar归档文件中

tar -rf test.tar test.txt

10)更新test.tar中的test.txt文件

tar -uf test.tar test.txt

四、rar压缩打包和unrar解压命令

需要在Linux系统上安装才能使用rar和unrar命令 

参考网址:https://www.cnblogs.com/findumars/p/8244997.html

下载地址:http://www.rarsoft.com/download.htm

使用wget命令下载(我这里下载的是64位的)

[root@VM_0_10_centos tmp]# wget https://www.rarlab.com/rar/rarlinux-x64-5.8.b2.tar.gz
Saving to: ‘rarlinux-x64-5.8.b2.tar.gz’
%[=================================================================================>] , .8KB/s in 65s
-- :: (8.30 KB/s) - ‘rarlinux-x64-5.8.b2.tar.gz’ saved [/]

解压==编译==安装

[root@VM_0_10_centos tmp]# tar -zxvf rarlinux-x64-5.8.b2.tar.gz
[root@VM_0_10_centos tmp]# cd rar/
[root@VM_0_10_centos rar]# pwd
/tmp/rar
[root@VM_0_10_centos rar]# ls
acknow.txt default.sfx license.txt makefile order.htm rar rarfiles.lst rar.txt readme.txt unrar whatsnew.txt
[root@VM_0_10_centos rar]# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib

案例:

1)从指定文件或目录创建压缩包或添加文件到压缩包

# 使用a参数添加一个目录~到一个归档文件中,如果该文件不存在就会自动创建
rar a test.rar . 

PS:rar参数没有 ‘-’,如果加上会报错

2)从指定压缩包文件中删除某个文件

rar d test.rar test.txt
# 也可以使用正则匹配删除
rar d test.rar *.txt

3)查看不解压文件

rar l test.rar

4)unrar解压rar压缩文件

# 全路径解压
unrar x test.rar
# 去掉路径解压
mkdir tmp
unrar e test.rar tmp/

五、gz压缩和gunzip解压缩命令

解压1:gunzip filename.gz
解压2:gzip -d filename.gz
压缩:gzip filename
.tar.gz 和  .tgz
  解压:tar zxvf filename.tar.gz
  压缩:tar zcvf filename.tar.gz dirname
  压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....

#压缩文件和目录
gzip【源文件】 #压缩为 gz格式的压缩文件,源文件会消失
gzip -c【源文件】>【压缩文件】 #压缩为gz格式,源文件保留gzip -c cangls > cangls.gz #上面的例子
gzip -z【目录】 #压缩目录下所有的子文件,但是不能压缩目录
#解压文件
gunzip 【压缩文件名】
gzip -d 【压缩文件名】
#以上两种解压是一样的

六、bz2压缩命令

解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2
       解压:tar jxvf filename.tar.bz2
       压缩:tar jcvf filename.tar.bz2 dirname

#压缩文件
bzip2【源文件】 #压缩为.bz2格式,不保存源文件
bzip2 -k【源文件】 #压缩之后保留源文件
#解压文件
bunzip2 【压缩文件名】
bzip -d 【压缩文件名】
#以上两种解压是一样的

七、bz命令

解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
 .tar.bz
       解压:tar jxvf filename.tar.bz

八、z命令

解压:uncompress filename.z
压缩:compress filename
.tar.z
          解压:tar zxvf filename.tar.z
          压缩:tar zcvf filename.tar.z dirname

【Linux命令】Linux压缩及解压命令的更多相关文章

  1. Linux 下文件压缩与解压命令详解

    tar 命令 -c 建立压缩档案 -x 解压 -t 查看内容 -r 向压缩归档文件末尾追加文件 -u 更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中 ...

  2. linux中常用压缩与解压命令

    一. tar文件的解压 tar -xvf db.tar 二. zip文件的压缩与解压 压缩 zip -r dest_name.zip directory_to_compress 解压 unzip de ...

  3. linux下关于压缩、解压相关的操作

    本文转自: http://alex09.iteye.com/blog/647128 很不错的linux下关于压缩.解压相关的操作,适合于linux初学者.   .tar  解包:tar xvf Fil ...

  4. Linux 压缩、解压命令使用

    tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,这里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数:(个人理解也就是打包) -x : 解压缩压缩档案 ...

  5. linux 压缩以及解压命令

    转载:http://blog.csdn.net/mmllkkjj/article/details/6768294/ tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件- ...

  6. linux的 压缩与解压 命令集

    bzip2压缩费时但效果好,而且支持hadoop的hdfs文件切分,gzip不行 bzip2 [-cdz] 文件名 -c :将压缩的过程输出到屏幕 -d :解压缩 -z :压缩 -# :压缩比的参数, ...

  7. Linux文件压缩与解压命令

    1  .zip 格式压缩与解压 压缩命令 zip 压缩文件名 源文件 zip  -r   压缩目录名       源目录 解压命令 unzip 文件名 td@td-Lenovo-IdeaPad-Y41 ...

  8. 【Linux】CentOS tar压缩与解压命令大全

    tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用 ...

  9. linux下文件压缩与解压操作

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap.可 ...

随机推荐

  1. 前端笔记之Vue(四)UI组件库&Vuex&虚拟服务器初识

    一.日历组件 new Date()的月份是从0开始的. 下面表达式是:2018年6月1日 new Date(2018, 5, 1); 下面表达式是:2018年5月1日 new Date(2018, 4 ...

  2. 【VM配置】配置主机名称、网卡和yum源配置

    一,.配置主机名 为了对主机能进行分区,除了要有ip地址外还需要主机名,主机之间可以通过这个类似域名的名称来相互访问.linux系统中主机名配置文件一般在/etc/hostname文件中.另外我们也可 ...

  3. 【Linux命令】安装命令(yum,rpm)

    安装软件有三种方式,第一种是源码安装(源码安装需要手动安装软件,安装的目录,还需要进行编译之后才能安装),步骤比较繁琐.第二种是RPM安装,rpm安装有点像windows系统的面板,会建立统一的数据库 ...

  4. 多线程通信的两种方式? (可重入锁ReentrantLock和Object)

    (一)Java中线程协作的最常见的两种方式: (1)利用Object的wait().notify()和notifyAll()方法及synchronized (2)使用Condition.Reentra ...

  5. C++ 运行时类别识别

    运行时动态类型的识别其实应该是多态方面的知识,这里我直接拿来单独成章. dynamic_cast和static_cast 1.static_cast用法如下: static_cast < Typ ...

  6. MySql配置主从模式 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

    今天在学习MyCat环境搭建的时候,在配置MySql的主从模式,发现slave在配置完毕后,配置的内容全部正确的情况下,报错了? Last_IO_Error: Fatal error: The sla ...

  7. 易优CMS:foreach的基础用法

      [基础用法] 名称:foreach 功能:数据/记录循环输出标签(注:类似与volist标签,只是更加简单,没有太多额外的属性.) 语法: {eyou:channel type='top'} {e ...

  8. 用CSS伪类实现毛玻璃效果

    效果图: 思路: 内容容器需要一个before伪类,负责引用跟背景容器相同的背景图,还需要一个after伪类,用来加上半透明的白色背景.这两个伪类的层级需都为-1,而内容容器本身的层级为1,这样做可以 ...

  9. 上传App Store 被拒问题及解决方案总结

    最近公司比较忙,一直忙着写代码做新的应用,一连上线了几个应用,我们也是忙得焦头烂额的,都没时间做总结,今天趁APP审核期间,总结一下近期上传App Store遇到的一些问题和解决方法,以便以后查阅. ...

  10. docker卷管理(四)

    什么是数据卷 overlay2存储卷 docker镜像是由多个只读层叠加而成,启动容器时,docker会加载只读镜像层,并在镜像栈顶部添加一个可写层 如果运行中的容器修改了现有的一个已存在文件,那该文 ...