tar、7z(7zip)压缩/解压缩指令的使用
本文介绍tar、7z指令的使用方法
tar指令
在Linux中,使用的最多的压缩/解压缩指令就是tar指令了。
tar指令用来将多个文件/目录结构打包。在实际使用中,往往使用tar对压缩的支持,即同时进行打包和压缩两步操作。常用的以下几种文件格式可以由tar指令生成。
.tar ~ 仅对文件/目录结构进行打包操作,不压缩;
.tar.gz ~ 对文件/目录结构进行打包,并按照gzip格式进行压缩;
.tar.bz2 ~对文件/目录结构进行打包,并按照bz2格式进行压缩;
.tar.xz ~对文件/目录结构进行打包,并按照LZMA算法进行压缩(Linux内核使用此格式发布);
指令格式
$ tar --help
用法: tar [选项...] [FILE]...
GNU 'tar' saves many files together into asingle tape or disk archive, and can
restore individual files from the archive.
Examples:
tar-cf archive.tar foo bar # Createarchive.tar from files foo and bar.
tar-tvf archive.tar # List all filesin archive.tar verbosely.
tar-xf archive.tar # Extract allfiles from archive.tar.
tar指令的常用选项如下列表所示:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-J:有xz属性的
-v:显示所有过程
-C:切换到某个目录下执行tar指令
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。(必须加此参数)
使用示例
$cd ~/study
$rm –rf *
$mkdir –p d1/d11
$mkdir d2
$touch d1/d11/f1.c
$touch d2/f2.php
$cd ../
#$tar czf study.tar.gz study/ ~ 打包并执行.gz格式压缩
#$tar cjf study.tar.bz2 study/ ~ 打包并执行.bz2格式压缩
$tar cJf study.tar.xz study/ ~ 打包并执行.xz格式压缩
#$tar tf study.tar.gz ~ 查看压缩包内的目录列表
#$tar tf study.tar.bz2 ~ 查看压缩包内的目录列表
$tar tf study.tar.xz ~ 查看压缩包内的目录列表
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$rm –rf study
#$tar xzf study.tar.xz ~ 解压缩.gz格式的压缩包到当前目录
#$tar xjf study.tar.xz ~ 解压缩.bz2格式的压缩包到当前目录
$tar xJf study.tar.xz ~ 解压缩.xz格式的压缩包到当前目录
$ls
study.tar.xz study
$tar xJf study.tar.xz -C / ~ 将压缩包解压到根目录下
$ ls /
bin Cygwin.bat Cygwin-Terminal.ico etc lib proc tmp var
cygdrive Cygwin.ico dev home opt study usr
更多信息
$man tar
7z指令
7z是7zip压缩工具的常用压缩文件格式。7zip是一个开源的压缩工具,软件本身十分小巧,功能强大,是目前公认的压缩比最大的压缩解压缩软件,近年来开始渐渐流行。
7zip支持众多的压缩格式,支持7z, XZ,BZIP2, GZIP, TAR, ZIP格式的压缩/解压缩。支持CAB, ISO, RAR, RPM, XAR, Z等众多格式的解压缩。
程序退出代码0表示正常,没有错误。
命令格式
$ 7z --help
Usage: 7z <command>[<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
常用的command如下:
a 添加文件到压缩文件
d 从压缩文件中删除文件
e 从压缩文件中解压缩文件,不包含目录结构
l 列出压缩包中的内容
t 测试压缩文件
u更新文件到压缩文件
x从压缩文件中解压缩,包含目录结构
使用示例
$ rm * -rf
$ mkdir -p study/d1/d11 study/d2
$ touch study/d1/d11/f1.c study/d2/f2.php
$ 7z a study.7z study/ ~ 将study整个目录添加到压缩包study.7z中
Scanning
Creating archive study.7z
Everything is Ok
$ 7z t study.7z ~ 测试压缩包
Processing archive: study.7z
Testing study/d1/d11/f1.c
Testing study/d2/f2.php
Testing study/d2
Testing study/d1/d11
Testing study/d1
Testing study
Everything is Ok
$ rm -rf study
$ 7z x study.7z ~ 解压缩包到当前目录
Processing archive: study.7z
Extracting study/d1/d11/f1.c
Extracting study/d2/f2.php
Extracting study/d2
Extracting study/d1/d11
Extracting study/d1
Extracting study
Everything is Ok
$ 7z d study.7z study/d2/f2.php ~ 删除压缩包中的指定文件
Updating archive study.7z
Everything is Ok
$ 7z t study.7z ~ 测试压缩包
Processing archive: study.7z
Testing study/d1/d11/f1.c
Testing study/d2
Testing study/d1/d11
Testing study/d1
Testing study
Everything is Ok
$ 7z l study.7z ~ 查看压缩包中的目录结构
Listing archive: study.7z
--
Path = study.7z
Type = 7z
Solid = -
Blocks = 0
Physical Size = 152
Headers Size = 152
study/d1/d11/f1.c
study/d2
study/d1/d11
study/d1
study
$ 7z u study.7z study/d1/d11/f1.c ~ 更新压缩包中的指定文件
Scanning
Updating archive study.7z
Compressing study/d1/d11/f1.c
Everything is Ok
$ 7z l study.7z ~ 查看压缩包中的目录结构
Listing archive: study.7z
--
Path = study.7z
Type = 7z
Method = LZMA
Solid = -
Blocks = 1
Physical Size = 260
Headers Size = 186
study/d1/d11/f1.c
study/d2
study/d1/d11
study/d1
study
7zip的压缩格式控制
在上述示例中,演示了7z压缩/解压缩指令的使用。在使用7z进行压缩/解压缩时,压缩格式是根据命令中提供的压缩包的文件后缀名来识别的。例如,7z a study.zip study/ 将目录树study按照zip格式进行压缩,7z a study.7z study/将目录树study按照7z格式进行压缩。反之,解压缩时,压缩格式也是根据压缩包文件名后缀自动识别的。
对于7zip和tar的各种压缩格式(tar.gz tar.bz2 tar.xz)之间的兼容,可以参考如下实现。
$ 7z a study4.tar study ~ step1 先按tar格式进行打包
#按照实验结果推断,本条指令与tar cf study4.tar study 具有相同效果
Scanning
Creating archive study4.tar
Compressing study
Compressing study/d1
Compressing study/d1/d11
Compressing study/d1/d11/f1.c
Compressing study/d2
Compressing study/d2/f2.php
Everything is Ok
$ 7z a study4.tar.gz study4.tar ~ 将已打包的文件进行按gzip格式压缩
Scanning
Creating archive study4.tar.gz
Compressing study4.tar
Everything is Ok
$tar tf study4.tar ~ 使用tar指令测试文件包,无错误
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$tar tf study4.tar.gz ~ 使用tar指令测试压缩包,无错误
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$ rm study -rf
$tar xzvf study4.tar.gz ~ 使用tar解压缩由7z生成的.tar.gz压缩包,成功。
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$ rm *.*
$ ls
study
$tar czf study4.tar.gz study ~ 使用tar指令生成.tar.gz格式压缩包
$ 7z x study4.tar.gz ~ 使用7z解压缩tar生成的压缩包,成功
Processing archive: study4.tar.gz
Extracting study4.tar
Everything is Ok
$ 7z x study4.tar ~ 使用7z进一步解压,成功
Processing archive: study4.tar
Extracting study
Extracting study/d1
Extracting study/d1/d11
Extracting study/d1/d11/f1.c
Extracting study/d2
Extracting study/d2/f2.php
Everything is Ok
$
$tar cvf study5.tar study ~ 使用tar创建无压缩的文件包
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$ 7z a study5.tar.bz2 study5.tar ~ 使用7zip将文件包压缩
Scanning
Creating archive study5.tar.bz2
Compressing study5.tar
Everything is Ok
$tar tf study5.tar.bz2 ~ 使用tar测试压缩包
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
$ 7z x study5.tar.bz2 ~ 使用7zip解压缩压缩包
Processing archive: study5.tar.bz2
file study5.tar
Extracting study5.tar
Everything is Ok
$ rm -rf study
$ 7zx study5.tar ~ 使用7zip还原tar指令生成的文件包
Processing archive: study5.tar
Extracting study
Extracting study/d1
Extracting study/d1/d11
Extracting study/d1/d11/f1.c
Extracting study/d2
Extracting study/d2/f2.php
Everything is Ok
$ rm study -rf
$tar xjvf study5.tar.bz2 ~ 使用tar解压缩tar+7zip生成的.tar.bz2压缩包
study/
study/d1/
study/d1/d11/
study/d1/d11/f1.c
study/d2/
study/d2/f2.php
tar、7z(7zip)压缩/解压缩指令的使用的更多相关文章
- Mac OS X 10.8.4下面XZ Utils(*.tar.xz)压缩解压缩命令工具的安装
主要参考:http://bbs.chinaunix.net/thread-3610738-1-1.html 现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩 ...
- linux 软连接创建 压缩解压缩 linux的dns服务相关
linux软连接创建 注意用绝对路径,语法如下 ln -s 目标文件绝对路径 软连接名字绝对路径 ln -s /小护士.txt /tmp/hs.txt 修改linux的PS1变量,命令提示符变量 PS ...
- Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar
本文是笔者对鸟叔的Linux私房菜(基础学习篇) 第三版(中文网站)中关于 Linux 环境下打包和解压缩指令的内容以及日常操作过程中所接触的相关指令的总结和记录,以供备忘和分享.更多详细信息可直接参 ...
- 命令行压缩解压缩一 7z
命令行压缩解压缩一 7z 1) 简介 7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压缩软件. 主页:http://www.7-zip.org/ 中文主页:http: ...
- 程序中使用7-zip(7z)压缩文件
Email:longsu2010 at yeah dot net 工作中难免遇到需要压缩文件的情况,比如有一千万个小文件,每个文件约100k,如果使用7-zip压缩后可能十几k,可以节省很多磁盘空间. ...
- Shell命令-文件压缩解压缩之tar、unzip
文件及内容处理 - tar.unip 1.tar:打包压缩命令 tar命令的功能说明 tar 命令常用语用于备份文件,tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件 ta ...
- bzip2 以及 tar 压缩/解压缩/.打包等工具软件
1. bzip2 命令 基础格式: bzip2 [Options] file1 file2 file3 指令选项:(默认功能为压缩) -c //将输出写至标准输出 -d //进行解压操作 -v //输 ...
- Linux压缩解压缩(unzip,tar)
unzip tar 常用解压缩命令: tar -zxvpf:解压缩 tar -zcvpf: 压缩 # tar [-j|-z] [cv] [-f 建立的檔名] filename... <==打包与 ...
- tar压缩解压缩
Linux下的tar压缩解压缩命令详解tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以 ...
随机推荐
- 吴裕雄 实战python编程(3)
import requests from bs4 import BeautifulSoup url = 'http://www.baidu.com'html = requests.get(url)sp ...
- python中迭代器(转)
一.迭代器与for语句 网上许多文章说Python的for语句中,in关键字后面的对象是一个集合.例如 for i in [1,2,3] print i 上面代码中in关键字后面的对象[1,2,3]是 ...
- Hadoop 初始化系统
hadoop namenode -format 或者 hdfs namenode -format 2.执行hadoop sbin 目录下的 start-dfs.sh start-yarn.sh3.查看 ...
- 大型运输行业实战_day06_1_购票功能简单实现
1.添加购票按钮 对应的html代码 因为列表是js函数动态填充的,故添加按钮应该在js函数中,完整代码如下: /** * 注意在调用该函数时必须输入参数 * 查询+ 分页 * */ function ...
- 第五章 二叉树(e5)重构
- Java实现聚类算法k-means
2016-07 java简单实现聚类算法 但是有一个小问题,,,,我其实每次迭代之后(就是达不到我的收敛标准之前,聚类中心的误差达不到指定小的时候),虽然重新算了聚类中心,但是其实我的那些点并没有变, ...
- [leetcode]680. Valid Palindrome II有效回文II(可至多删一原字符)
Given a non-empty string s, you may delete at most one character. Judge whether you can make it a pa ...
- 基于Jenkins的持续集成CI
CI(continuous integration)持续集成 一次构建:可能包含编译,测试,审查和部署,以及其他一些事情,一次构建就是将源代码放在一起,并验证软件是否可以作为一个一致的单元运行的过程. ...
- .NET资源文件实现多语言切换
1.创建对应的资源文件 lang.en.resx 英文 lang.resx 中文,默认 lang.zh-tw.resx 繁体 首先说明,这三个文件前面部分名称需要一样,只是 点 后面的语言代号 ...
- CSS中margin边界叠加问题及解决方案(转)
边界叠加简介 边界叠加是一个相当简单的概念.但是,在实践中对网页进行布局时,它会造成许多混淆.简单地说,当两个垂直边界相遇时,它们将形成一个边界.这个边界的高度等于两个发生叠加的边界的高度中的较大者. ...