压缩(zip)
默认情况这些压缩工具在压缩后会删除源文件(zip除外);而且默认只压缩文件,而不压缩目录(链接到打包程序)。
|
1.gzip
1.1.压缩
gzip 压缩工具压缩一个普通文件扩展名为“.gz”。压缩后删除了原文件。
$ gzip user.sh
可以一次压缩多个文件。压缩时每个文件独立压缩。
$ gzip *
1.2.解压
解压缩;同样删除原文件。
$ gunzip user.sh.gz
其实,解压缩使用的命令是个脚本。
#!/bin/sh
PATH=${GZIP_BINDIR-'/bin'}:$PATH
exec gzip -d "$@"
1.3.测试压缩文件完整性
$ gzip -t hello
gzip: hello: unexpected end of file
1.4.查看压缩文件内容
$ zcat hello.gz
2.bzip2/xz
2.1.压缩
压缩后扩展名“.bz2”,同样会删除原文件。
$ bzip2 *
使用星号时,会压缩多个文件,每个文件独立压缩。
2.2.解压
$ bunzip2 *
$ bzip2 -d *
2.3.保留原文件
$ bzip2 -k hello
不支持使用星号
2.4.查看压缩文件内容
$ bzcat hello.bz2
3.zip
压缩时指定压缩包名称为“foo”,最后生成压缩包名为“foo.zip”。追加成员,无须特定选项。
压缩时,运行在unix环境下,支持正在表达式匹配:?、*、[]。分别代表匹配单个字符、匹配任意数量字符(包括空)、其中之一匹配。
3.1.压缩目录
可以直接压缩目录
$ zip mash.zip mash/
这样确实可以直接压缩目录,但是如果目录“mash”下全是目录文件,那么压缩包里就是空的。因为之压缩了目录(确实是压缩了)。
压缩目录 "zip-dir" 下的所有文件(包含其中子目录及子目录中文件),解压后还有目录 “zip-dir”。(选项带“-r”、末尾带星号“*”)
$ zip -r zip-dir.zip zip-dir/*
3.2.压缩文件
压缩当前目录下的所有文件和目录(不包含当前目录子目录中的文件)。
$ zip zip-dir *
3.3.指定压缩包位置
指定到其它目录下。
$ zip /test/zip-dir *
3.4.压缩后删除原始文件
创建压缩文件“all.zip”的同时删除原始文件“all”。
$ cd zip-dir
$ mkdir all
$ zip -rm all all
追加当前目录下的文件到压缩文件;并删除原始文件。
$ zip -rm all *
3.5.为压缩包设置密码
给压缩包加密,使用选项“-e”。
$ zip -r -e bin.zip bin/*
Enter password:
Verify password:
adding: bin/zcw_bak4release-3.2.sh (deflated 57%)
adding: bin/zcw_mkdir4bak-2.2.sh (deflated 52%)
adding: bin/zcw_replace4release-2.2.sh (deflated 58%)
adding: bin/zcw_Virtualfile-1.3.sh (deflated 56%)
可以直接在命令行指定加密密码,使用大写“-P”:
# zip -r -e -P hello bin.zip bin/*
3.6.显示压缩了多少文件
在压缩完成后显示压缩了多少文件。
$ zip -dc bin.zip bin/*
0/ 4 updating: bin/zcw_bak4release-3.2.sh (deflated 57%)
1/ 3 updating: bin/zcw_mkdir4bak-2.2.sh (deflated 52%)
2/ 2 updating: bin/zcw_replace4release-2.2.sh (deflated 58%)
3/ 1 updating: bin/zcw_Virtualfile-1.3.sh (deflated 56%)
3.7.压缩后去掉目录
仅压缩指定目录下的文件而不包含其中子目录,也不包含当前目录(zip-dir)。(解压后只有文件不见目录)
$ zip -j zip-dir zip-dir/*
实例:获取tomcat的日志(压缩后路径较长,使用不便):
[root@right mag]# zip -j catalina.zip /home/work/tomcat4file/logs/catalina.out
adding: catalina.out (deflated %)
3.8.改变压缩输入方式(压缩文件来自管道)
$ find /etc/sysconfig/network-scripts -name "ifcfg*" -print | zip ifcfg -@
3.9.追加文件到压缩包
追加文件到压缩包,啥都不要直接操作。
[root@right mag]# zip back .txt
adding: .txt (stored %)
[root@right mag]# zip back .conf
adding: .conf (stored %)
[root@right mag]# zip back .xml .html .sql
adding: .xml (stored %)
adding: .html (stored %)
adding: .sql (stored %)
[root@right mag]# unzip -l back
Archive: back.zip
Length Date Time Name
--------- ---------- ----- ----
-- : .txt
-- : .conf
-- : .xml
-- : .html
-- : .sql
--------- -------
files
3.10.压缩指定文件
通过选项“-i”、“--include”获取指定格式的文件:
zip -r foo . -i \*.c
只压缩某些日志,实例:
[root@right mag]# zip -r lz.zip /home -i \*.out
adding: home/work/tomcat4file/logs/catalina.out (deflated %)
[root@right mag]# unzip -l lz.zip
Archive: lz.zip
Length Date Time Name
--------- ---------- ----- ----
-- : home/work/tomcat4file/logs/catalina.out
--------- -------
file
研发常常会找运维人员要文件:
[root@iZ28srao5ssZ mag]# zip -rj config.zip /home/work -i "*config.properties"
adding: config.properties (deflated %)
3.11.压缩时跳过指定文件
指定选项“-x”、“--exclude”。
跳过手机客户程序:
# zip -r .zip /home/work/release/* -x \*.apk
3.12.删除压缩文件中某个指定文件
指定名称名,使用选项“-d”删除。
[root@iZ28srao5ssZ mag]# zip -d config.zip home/work*
deleting: home/work/release/caiBao/WEB-INF/classes/config.properties
[work@app47 .donatello]$ zip -d 10_zcw_release-3.0..zip _re*
deleting: _replace4release-3.2.sh
3.13.检查文件
选项“-T”
# zip -T cat-.zip
test of cat-.zip OK
unzip
3.1.测试压缩文件
检查压缩后有没有错误产生
$ unzip -t bin
Archive: bin.zip
testing: bin/ OK
testing: bin/zcw_bak4release-3.2.sh OK
testing: bin/zcw_Virtualfile-1.3.sh OK
No errors detected in compressed data of bin.zip.
$ unzip -tq bin
No errors detected in compressed data of bin.zip.
3.2.列出压缩包中的文件
$ unzip -l zip-dir.zip
详细列出压缩包中的文件信息
$ unzip -v zip-dir.zip
3.3.解压所有文件
提取zcw.zip中所有文件
$ unzip zcw
Archive: zcw.zip
inflating: zcw_replace4release-2.3.sh
inflating: zcw_Virtualfile-1.3.sh
解压时,去掉目录结构。
$ unzip -j bin
解压指定的某个文件
$ unzip bin \*zcw_V*.sh
Archive: bin.zip
inflating: bin/zcw_Virtualfile-1.3.sh
FAQ: 解压后的位置
$ zip base.repo.zip /etc/yum.repos.d/CentOS-Base.repo
$ unzip -l base.repo.zip
Archive: base.repo.zip
Length Date Time Name
--------- ---------- ----- ----
-- : etc/yum.repos.d/CentOS-Base.repo
--------- -------
file
即:
$ cd /data/Test
$ unzip /root/base.repo.zip
$ ls -R etc/
![]() |
$ ls /data/Test/etc/yum.repos.d/CentOS-Base.repo
/data/Test/etc/yum.repos.d/CentOS-Base.repo
3.4.指定解压目录
默认解压所有文件、子目录到当前目录下,使用选项“-d”可以指定目录。
# unzip caiBao.zip -d /home/work/payment_front_pro/release/
4. GNU tar
主要操作模式
-cf 归档打包
-tf 查看归档包(效果类似于“ls”的显示样式,but不是以空白分割,而是换行分割)
-tvf 查看归档包(效果类似于“ls -l”的显示样式)
-xf 归档解包
通用选项
-C 指定解压目录
-v 详细列出已处理的文件
$ tar -cf demo.tar demo/
$ tar -tf demo.tar
…… $ tar -xf nari.tar
4.1.压缩
$ tar -zcvf .tar.gz
压缩时带上时间信息
$ tar -zcf etc_$(date +%F).tar.gz /etc
$ tar -jcf root_$(date +%Y.%m.%d-%H%M%S).tar.bz2 /root
$ tar -jcf root_$(date +%y.%m.%d-%H%M%S).tar.bz2 /root
4.2.解压缩
$ tar -zxvf .tar.gz
$ tar -zxvf .tgz
$ tar -jxvf .tar.bz2
$ tar -Jxvf .tar.Z
$ tar -xf .tar.gz
默认还原到原始打包的路径下;可以使用选项“-C”指定解压后的目录。
$ tar -zxf /opt/etc.tar.gz
$ tar -zxf /opt/etc.tar.gz -C /root
4.3.查看压缩包文件结构
查看压缩文件列表
$ tar -tf etc.tar.gz
详细查看压缩文件列表
$ tar -tvf etc.tar.gz
4.4.打包时跳过某些文件
选项“-X”、“--exclude”
$ tar --exclude=/data/tomcat_cb/logs/* -zcvf tom.tgz /data/tomcat_cb/
压缩(zip)的更多相关文章
- 在线压缩zip
<?php //验证密码 $password = "test"; ?> <html> <head> <meta http-equiv=&q ...
- java zip API实现压缩和解压缩zip包
package zip; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io ...
- Linux中解压、压缩 ZIP文件
解压 unzip -o -d /home/v-gazh myfile.zip # 把myfile.zip文件解压到 /home/v-gazh/ # -o:不提示的情况下覆盖文件: # -d:-d /h ...
- Linux下的压缩zip,解压缩unzip命令详解及实例
实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...
- asp.net 文件压缩zip下载
今天分享下昨天做的一个东西 asp.net 的文件 zip 批量下载,首先你需要去 到http://dotnetzip.codeplex.com这个站点下载zip 的包,在里面找到 Ionic.Z ...
- C# .NET 使用第三方类库DotNetZip解压/压缩Zip rar文件
DotNetZip on CodePlex: http://dotnetzip.codeplex.com/ 详细的可以看源代码……总之感觉比SharpZipLib好用.而且DotNetZip支持VB, ...
- 【转】ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件
原文网址:http://blog.sina.com.cn/s/blog_5da93c8f0101h1uj.html 在Linux下面如何去压缩文件或者目录呢? 在这里我们将学习zip, tar, ta ...
- Linux下的压缩zip,解压缩unzip命令具体解释及实例
实例:压缩server上当前文件夹的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前文件夹 unzip filename.zip ================= ...
- java压缩zip文件中文乱码问题(转——作者:riching)
本人遇到了同样的问题,用了以下方案,奇迹般的解决了.我很纳闷为什么,经理说:好读书,不求甚解,不要问为什么... 用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问 ...
- POI导出大量数据的简单解决方案(附源码)-Java-POI导出大量数据,导出Excel文件,压缩ZIP(转载自iteye.com)
说明:我的电脑 2.0CPU 2G内存 能够十秒钟导出 20W 条数据 ,12.8M的excel内容压缩后2.68M 我们知道在POI导出Excel时,数据量大了,很容易导致内存溢出.由于Excel ...
随机推荐
- NLP自然语言处理中的hanlp分词实例
本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果.为何会如此,不妨一起学习一下 gladosAI 的这篇文 ...
- 简单脱壳教程笔记(2)---手脱UPX壳(1)
本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...
- 网易云课堂Dubbo学习笔记
可以在这里下载dubbo的原码:https://github.com/alibaba/dubbo Dubbo架构原理:
- ML: 聚类算法R包 - 密度聚类
密度聚类 fpc::dbscan fpc::dbscan DBSCAN核心思想:如果一个点,在距它Eps的范围内有不少于MinPts个点,则该点就是核心点.核心和它Eps范围内的邻居形成一个簇.在一个 ...
- locaton.href传参数
location.href = location.href.substring(0,location.href.lastIndexOf('?'))+'?typeId=' + fid + '&p ...
- LINUX 内存使用情况
# free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KBused 已使用的内存 7852484KBfree 空闲的内存数 205480KBshared 当前已经 ...
- vue中的计算属性中的坑,
new Vue({ el: '#app', data: { msg:'121', val: '', }, computed:{ val:function(){ return 3; } }, }); 这 ...
- C# 生成时间戳
编写网络程序中难免用到一些时间戳. 早前不知道哪里复制过一个代码,如下: public static string GetTimeStamp() { TimeSpan ts = DateTime.Ut ...
- CSS 鼠标选中文字后改变背景色的实现代码
废话不多说,直接上代码 ::-moz-selection{background:#93C; color:#FCF;} ::selection {background:#93C; color:#FCF; ...
- [蓝桥杯]ALGO-81.算法训练_动态数组使用
从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 样例输出: 样例输入: 样例输出: 题目 ...
