Linux下常见的压缩、解压缩命令
一、.tar.gz格式和.tar.bz2格式
使用tar命令后跟选项的方式实现tar命令和gzip或者bzip2命令的组合,实现同时进行打包和压缩,这也是最经常使用的压缩和解压缩方式
一)语法格式
语法格式:tar [参数] [文件或目录]
二)常用参数
-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 归档/压缩之后删除源文件
二、.gz格式
.gz格式和.bz2格式是Linux中最常见的压缩格式,使用gzip命令
gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
https://www.linuxcool.com/gzip
一)语法格式
语法格式:gzip [参数]
二)常用参数
-a 使用ASCII文字模式 -d 解开压缩文件 -f 强行压缩文件 -l 列出压缩文件的相关信息 -c 把压缩后的文件输出到标准输出设备,不去更动原始文件 -r 递归处理,将指定目录下的所有文件及子目录一并处理 -q 不显示警告信息
三、.biz格式
Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。
bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
一)语法格式
语法格式:bzip2 [参数] 文件系统
二)常用参数
-c 将压缩与解压缩的结果送到标准输出 -d 执行解压缩 -f bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数 -k bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数 -s 降低程序执行时内存的使用量 -t 测试.bz2压缩文件的完整性 -v 压缩或解压缩文件时,显示详细的信息 -z 强制执行压缩
四、.zip格式
一)常用操作
1、把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 2、把/home目录下面的mydata.zip解压到mydatabak目录里面 unzip mydata.zip -d mydatabak 3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip zip -r abc123.zip abc 123.txt 4、把/home目录下面的wwwroot.zip直接解压到/home目录里面 unzip wwwroot.zip 5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面 unzip abc\*.zip 6、查看把/home目录下面的wwwroot.zip里面的内容 unzip -v wwwroot.zip 7、验证/home目录下面的wwwroot.zip是否完整 unzip -t wwwroot.zip 8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录 unzip -j wwwroot.zip
二)unzip主要参数
-c:将解压缩的结果 -l:显示压缩文件内所包含的文件 -p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换 -t:检查压缩文件是否正确 -u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中 -v:执行是时显示详细的信息 -z:仅显示压缩文件的备注文字 -a:对文本文件进行必要的字符转换 -b:不要对文本文件进行字符转换 -C:压缩文件中的文件名称区分大小写 -j:不处理压缩文件中原有的目录路径 -L:将压缩文件中的全部文件名改为小写 -M:将输出结果送到more程序处理 -n:解压缩时不要覆盖原有的文件 -o:不必先询问用户,unzip执行后覆盖原有文件 -P:使用zip的密码选项 -q:执行时不显示任何信息 -s:将文件名中的空白字符转换为底线字符 -V:保留VMS的文件版本信息 -X:解压缩时同时回存文件原来的UID/GID
五、.tar.xz格式
一)解压tar.xz安装包
Ubuntu上安装nodejs,下载的文件是node-v8.11.1-linux-x64.tar.xz,这是两层压缩,外面是xz压缩,里层是tar压缩,所以分两步实现解压。 # xz -d node-v8.11.1-linux-x64.tar.xz # tar -xvf node-v8.11.1-linux-x64.tar.xz123 也可以直接解压 # tar -xvJf node-v8.11.1-linux-x64.tar.xz1 tar.xz格式的压缩包大小比.tar要小,但是压缩解压缩时间比较长
二)创建tar.xz压缩文件
先创建xxx.tar文件 # tar -cvf xxx.tar xxx1 再创建xxx.tar.xz文件 # xz -z xxx.tar1 如果要保留被压缩的文件,需要加上参数-k
三)解压缩tar.xz文件
解压xz压缩文件 xz -d 待解压文件 -k 保留原文件; 这样解压出来的文件是tar格式的打包文件,需要执行: tar -xvf 待解包文件名)
需要注意的是:tar命令中没有直接解压xz压缩格式的参数(比如-f解压bzip2、 -z解压gzip)