Linux下打包、压缩和解压
命令使用:tar 主选项+辅选项 压缩后文件名 要压缩的文件
-c 建立压缩文件(常用)
-x 解压(常用)
-t 查看压缩文件(常用)
-r 向压缩文件末尾追加文件
-u 更新一个压缩包中的文件
上述五个参数是主选项,是互斥的(只能出现其中的一个),所有的归档操作都需要用到其中的一个,可以和辅选项连用:
-z 使用gzip压缩
-j 使用bz2压缩
-J 使用xz压缩
-Z 使用compress压缩(compress,已被bzip代替)
-v 显示过程
-w 每压缩一个文件都需要确认(不常用)
-O 解开到标准输出STDOUT(不常用)
-f 指定压缩包名,切记!这个参数最后出现,后面接压缩包名,也是必选参数
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-t是解开的意思,如果需要解压到特定目录加-C参数,tar -xf all.tar -C dirname
3种压缩方式:
|
压缩方式 |
参数 |
特性 |
|
gzip |
z |
.gz早期的压缩方式,压缩性能小,但是快 |
|
bzip2 |
j |
.bz2中期的压缩方式,压缩能力中 |
|
xz |
J |
.xz现在常用的压缩方式,压缩能力强,速度慢 |
PS:使用什么方式压缩,解压时也必须使用此方式!
# tar -czvf /mnt/etc.tar.gz /etc
//对/etc文件夹使用gzip方式进行压缩,压缩后存放为/mnt/etc.tar.gz
# tar -cjvf /mnt/etc.tar.bz2 /etc
//对/etc文件夹使用bzip2方式进行压缩,压缩后存放为/mnt/etc.tar.bz2
# tar -cJvf /mnt/etcz.tar.xz /etc
//对/etc文件夹使用xz方式进行压缩,压缩后存放为/mnt/etcz.tar.xc
# tar -xzvf /mnt/etc.tar.gz -C /liu
//对/mnt/etc.tar.gz进行解压,如果想指定解压后的文件存放位置,需要-C参数来指定
# tar -xjvf /mnt/etc.tar.bz2 -C /liu
//对/mnt/etc.tar.bz2进行解压,如果想指定解压后的文件存放位置,需要-C参数来指定
# tar -xJvf /mnt/etcz.tar.xz -C /liu
//对/mnt/etcz.tar.xz进行解压,如果想指定解压后的文件存放位置,需要-C参数来指定
简单的说一下打包(打包文件,归档文件)和压缩(压缩文件,压缩包文件,压缩包),打包是把一堆文件或一个目录(文件夹)合成一个文件,压缩是把一个文件通过某种算法将其占用容量变小。
tar是打包命令,gzip等是压缩命令。
tar -cf file file1 file2 file3把三个文件打包成一个文件file
tar -cf file dir把dir目录打包成一个文件file
tar -xf file解压打包文件
tar -czf file file1 file2 file3把三个文件先打包成一个文件,然后调用gzip压缩
tar -xzf file解压经过gzip压缩的打包文件
gzip压缩程序:(gzip -h显示帮助)
gzip s1把s1文件使用gzip方式压缩(s1.gz),并替换原文件(s1)
gzip -c s1 > s1.gz把s1文件压缩,并另存为s1.gz
gzip -d s1.gz把s1.gz解压,并替换原文件
gzip -dc s1.gz > s1把s1.gz解压,并另存为s1
gzip -v s1显示压缩过程
gzip -t s1.gz检查压缩文件的完整性
gzip -l s1.gz显示压缩文件s1的压缩后大小 未压缩大小 压缩比 未压缩前的名字
gzip -5 -c s1 > s1.gz以压缩比5(-num可选值为1~9,1是最快压缩,等价于--fast,9是最高压缩,等价于--best)将s1文件压缩并另存为s1.gz
zcat 压缩包名,不解压在STDOUT显示压缩文件的内容
PS:出现gzip:unknown suffix --ignored,说明欲解压的文件未带gz后缀。(使用mv重命名即可解决或gzip -d -c 未带gz后缀的压缩文件 > 解压后的名字)
bzip2压缩程序:(bzip2 -h显示帮助)
bzip2 s1把s1使用bzip2方式压缩(s1.bz2),并替换原文件(s1)
bzip2 -k s1同上,但是保留原文件
bzip2 -c s1 > s1.bz2同上
bzip2 -t s1.bz2测试压缩包完整性
bzip -kv s1压缩时显示执行过程,需要更详细的过程,指定两次该参数,bzip -kvv s1
bzip -d s1.bz2解压缩,并替换原文件
bzip -dk s1.bz2同上,但是保留原文件
bzip -dc s1.bz2>s1同上
bzip -5 -k s1(-num同gzip)
PS:bzip -k -c s1>s1_stdout.bz2,这时-k参数失效,只会出现s1_stdout.bz2压缩包
出现bzip2:can’t guess original name for XXX -- using XXX.out,意思是解压时提供的压缩包没有bz2后缀,bzip2程序尝试以bzip2解压,并把解压出的文件添上out后缀
bzcat与zcat作用一样
xz压缩程序:(xz -h显示帮助)
类似bzip2。
UNIX-like的软件都遵循这个标准:一个工具只做一件事情,所以在linux上打包和压缩是两个独立的概念,上述讲到的压缩程序gzip bzip2 xz都只能压缩一个文件,不能压缩目录,要压缩目录需要先通过tar程序打包。
Linux下打包、压缩和解压的更多相关文章
- linux下打包压缩和解压命令
.tar 压缩:tar cvf FileName.tar FileName 解压:tar xvf FileName.tar .gz解压1:gunzip FileName.gz解压2:gzip -d F ...
- Linux下的压缩和解压
1. gzip, bzip2 能否直接压缩目录呢?不可以 2. 请快速写出,使用gzip和bzip2压缩和解压一个文件的命令.压缩:gzip 1.txt bzip2 1.txt解压:gzip -d 1 ...
- Linux下打包压缩war和解压war包
Linux下打包压缩war和解压war包 unzip是一种方法,如果不行则采用下面的方法 把当前目录下的所有文件打包成game.war jar -cvfM0 game.war ./ -c 创建wa ...
- Linux下打包压缩war和解压war包 zip和jar
============jar================= 把当前目录下的所有文件打包成game.warjar -cvfM0 game.war ./ -c 创建war包-v 显示过程信息 ...
- Linux下的压缩和解压缩命令gzip/gunzip
作者:邓聪聪 Linux下的压缩和解压缩命令——gzip/gunzip yum -y install zip gzip (--安装压缩工具) gzip命令 gzip命令用来压缩文件.gzip是个使用广 ...
- linux 实用指令压缩和解压类
linux 实用指令压缩和解压类 目录 linux 实用指令压缩和解压类 gzip/gunzip指令(不常用) zip/unzip指令 tar指令(常用) gzip/gunzip指令(不常用) 说明 ...
- Linux下常用压缩 解压命令和压缩比率对比
常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...
- Linux下常用压缩 解压命令与压缩比率对比
常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU时间和压缩比率也差异也比较大. 1. tar只是打包动作,相当于归档处理,不做压缩:解压也一样,只 ...
- 浅谈Linux下各种压缩 解压命令和压缩比率对比
Linux下压缩.解压命令五花八门,不像在windows下一个winrar打遍天下无敌手,清一色的.rar .zip格式. 比如,Linux下常用的tar tar.gz tar.bz2 .Z等等不一而 ...
- 【转】Linux下常用压缩 解压命令和压缩比率对比
https://www.cnblogs.com/joshua317/p/6170839.html 常用的格式有:tar, tar.gz(tgz), tar.bz2, 不同方式,压缩和解压方式所耗CPU ...
随机推荐
- sql 排序
select count(*) from vote group by contents PERCENT * from vote order by contents)as A group by cont ...
- vue遇到的大坑,h5在ios10版本下不能打开页面
无论是谁,在做事情的过程中总是会遇到学坑,才能成为最后的大神 这个坑不说了,找了半天.希望能帮助到你们 进入build文件夹: 找到webpack.prod.conf.js文件: 在UglifyPlu ...
- React-Router ---withRouter
import React from 'react' import { withRouter } from 'react-router' const Hello = (props) => { re ...
- mapbox 支持国家2000 坐标系的数据
最近有个项目使用mapbox作为地图展示,但是mapbox 只支持web 墨卡托(3857)坐标系的数据.而客户想接入其他单位发布的共享数据,共享数据都是基于arcgisserver 发布的国家200 ...
- 如何解决windows docker共享目录不支持符号链接(do not support symlinks)?
windows使用docker toolbox,搭建前端开发环境时,在共享目录使用npm安装前端依赖时,发现报错,无法使用符号连接. 这里有一个帖子专门讨论这个问题,感兴趣可以看一下: https:/ ...
- UNIX C 文件权限 Part2_day01
1.文件访问测试 测试调用进程对指定文件是否拥有足够的访问权限 #include <unistd.h> int access(const char* pathname,int mode); ...
- UOJ #219 BZOJ 4650 luogu P1117 [NOI2016]优秀的拆分 (后缀数组、ST表)
连NOI Day1T1都不会做...看了题解都写不出来还要抄Claris的代码.. 题目链接: (luogu)https://www.luogu.org/problemnew/show/P1117 ( ...
- POJ 1703 Find them, Catch them(并查集高级应用)
手动博客搬家:本文发表于20170805 21:25:49, 原地址https://blog.csdn.net/suncongbo/article/details/76735893 URL: http ...
- 【[Offer收割]编程练习赛11 C】岛屿3
[题目链接]:http://hihocoder.com/problemset/problem/1487 [题意] 中文题 [题解] 岛屿的数目对应了这个图中联通块的数目; 面积则对应有多少个方块; 周 ...
- (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
文件上传主要分以下几个步骤: (1)新建maven java project: (2)在pom.xml加入相应依赖: (3)新建一个表单页面(这里使用thymleaf); (4)编写controlle ...