压缩解压缩命令小结.docx
- 文档编号:20784044
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:23
- 大小:24.75KB
压缩解压缩命令小结.docx
《压缩解压缩命令小结.docx》由会员分享,可在线阅读,更多相关《压缩解压缩命令小结.docx(23页珍藏版)》请在冰豆网上搜索。
压缩解压缩命令小结
归档命令:
tar、jar、cpio、rar、zip与unzip
压缩解压:
ar、bzip2与bunzip2、compress与uncompress、
gzip与gunzip、lzma与unlzma、rar、zip与unzip
tar
tar
Operations:
[-]A--catenate--concatenate
[-]c--create
[-]d--diff--compare
[-]r--append
[-]t--list
[-]u--update
[-]x--extract--get
--delete
CommonOptions:
-C,--directoryDIR
-f,--fileF
-j,--bzip2
-p,--preserve-permissions
-v,-vv--verbose
-z,--gzip
...
注意:
1、当把某些参数选项与-f融合在一起时,-f要放在参数组的最后一项。
2、我么不能传递上百个文件或文件夹作为tar的参数,毕竟参数数量不是无限制的。
如果有很多文件需要归档的话,使用-r选项要更安全一些(当然一般是不用考虑此处的)。
例子:
归档,添加,查询tarball
1、向已存在的归档文件添加若干文件
tar-rvf1.tarnewfiles
注意:
哪怕1.tar中存在相同的文件名,源文件也不会被覆盖(但解压后,之后的文件会覆盖先解压的文件)
2、列出归档文件的内容
tar-tf1.tar
3、详细列出归档文件的内容,包括属性等信息
tar-tvvf1.tar
提取tarball
1、将tarball提取到当前目录
tar-xf1.tar
2、使用-C选项,将需要的文件提取到指定的目录
tar-xvf1.tar-C/tmp
3、通过将问价名指定为命令行参数来提取特定的文件
tar-xvf1.tarfile1file2=》只提取file1file2
综合应用
1、进行归档时,我们可以将stdout指定为输出文件,这样另一个命令就可以通过管道将它作为输入
-f指定stdout为归档文件(当使用-c选项时)
-f指定stdin用于提取内容(当使用-x选项时)
tar-cf-*.txt|tar-xvf--C123
首先对*.txt进行归档,让后将它们提取到123目录中
2、使用-A选项拼接两个归档文件
假设我们有两个tarball:
1.tar2.tar
通过tar-Af1.tar2.tar可以将2.tar的内容添加到1.tar中,如果1.tar不存在相当于将2.tar复制为1.tar
3、通过检查时间戳来更新归档文件中的内容(-u选项)
添加选项可以将指定的任意文件加入到归档文件中。
如果同名文件已经存在,那么结果就是在归档文件中包含了两个同名的文件。
我们可以用更新选项-u指明:
只有比归档文件中的同名文件更新的时候才进行添加。
如:
tar-uvvf1.tarfile1只有file1的文件内容修改时间更新或1.tar本来就不含file1的时候,才对它进行添加,但不覆盖原来的file1
4、比较归档文件和文件系统中的文件-d选项
tar-df1.tarfile1file2...
比价file1file2...与归档文件1.tar中的file1file2...的差别
5、从归档文件中删除文件
可以使用--delete选项从给定的归档文件中删除指定的文件
tar-f1.tar--deletefile1file2
6、压缩tarball
其实tar命令只能用来对文件进行归档,它并不具备压缩功能。
出于这个原因,我们在使用归档文件时可以采取某种形式的压缩。
归档文件通常被压缩为下列文件之一
file.tar.gz由-z指定gzip格式
file.tar.bz2由-j指定bunzip2格式
等等
7、归档时,排除指定的部分文件,使用--exclude[pattern]排除匹配通配符样式的文件(注意只能排除样式文件)
而不能排除整个目录,如:
mbank)/home/mbank/test/tar>tar-cvf2.tar*--exclude"*.sh"
123/
123/1.txt
1.tar
1.tar.bz2
1.tar.gz
1.txt
2.txt
注意:
如果当前还有子目录,归档时会遍历子目录的文件一起归档,当然也会排除子目录中的.sh文件,注意这里排除pattern匹配时,都是只以文件名字来匹配的,而不是整个路径名,下面的-X选项也是。
还可以将你要排除的文件列表放到一个文件list.txt中,同时配合-X选项来排除:
mbank)/home/mbank/test/tar>catlist.txt
2.sh
1.txt
mbank)/home/mbank/test/tar>tar-cvf3.tar*-Xlist.txt
8、仅解开单一文件的方法:
如果我只想要解开打包文件内的一个文件而已,则可以先用-jtv找到该文件名,再解开即可。
tar-jtvf1.bz2|grepfilename1
tar-jxvf1.bz2filename注意filename必须是存储在1.bz2中的完整文件名
如:
mbank)/home/mbank/mbank/etc>tar-zxvfscript.tar.gz9911004.xml
tar:
9911004.xml:
归档中找不到
tar:
由于前面延迟的错误而退出
mbank)/home/mbank/mbank/etc>tar-ztvfscript.tar.gz|grep9911004.xml
-rw-r--r--mbank/mbank13852012-11-1520:
56:
42script/9911004.xml
mbank)/home/mbank/mbank/etc>tar-zxvfscript.tar.gzscript/9911004.xml
script/9911004.xml
jar
jar与tar一样用于归档的,用法也类似(注意jar打包文件后缀名一般为.jar或.war
jar{ctxu}[vfm0M][jar-文件][manifest-文件][-C目录]文件名...
其中{ctxu}是jar命令的子命令,每次jar命令只能包含ctxu中的一个,它们分别表示:
-c 创建新的JAR文件包
-t 列出JAR文件包的内容列表
-x 展开JAR文件包的指定文件或者所有文件
-u 更新已存在的JAR文件包(添加文件到JAR文件包中)
特别注意,在参数的下达中,c/x/t/u仅能存在一个!
不可同时存在!
因为不可能同时压缩与解压缩。
-z:
是否同时具有gzip的属性?
亦即是否需要用gzip压缩?
-j:
是否同时具有bzip2的属性?
亦即是否需要用bzip2压缩?
-v:
压缩的过程中显示文件!
这个常用,但不建议用在背景执行过程!
-f 指定JAR文件名,通常这个参数是必须的
请留意,在f之后要立即接档名喔!
不要再加参数!
例如使用『jar-zcvfPtfilesfile』就是错误的写法,要写成
『jar-zcvPftfilesfile』才对喔!
-p:
使用原文件的原来属性(属性不会依据使用者而变)
-P:
可以使用绝对路径来压缩!
-N:
比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--excludeFILE:
在压缩的过程中,不要将FILE打包!
-m 指定需要包含的MANIFEST清单文件
-0 只存储,不压缩,这样产生的JAR文件包会比不用该参数产生的体积大,但速度更快
-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略-m参数
[jar-文件]即需要生成、查看、更新或者解开的JAR文件包,它是-f参数的附属参数
[manifest-文件]即MANIFEST清单文件,它是-m参数的附属参数
[-C目录]表示转到指定目录下去执行这个jar命令的操作。
它相当于先使用cd命令转该目录下再执行不带-C
参数的jar命令,它只能在创建和更新JAR文件包的时候可用。
文件名...指定一个文件/目录列表,这些文件/目录就是要添加到JAR
文件包中的文件/目录。
如果指定了目录,那么jar
命令打包的时候会自动把该目录中的所有文件和子目录打入包中。
下面举一些例子来说明jar命令的用法:
1)压缩jar-cvftest.jartest
2)解压jar-xvftest.jartest
cpio
类似于tar的另一种归档格式,多用于RPM软件包,Linux内核的initramfs文件
注意:
它与tar的一个不同点就是,在归档时,如果归档文件以/开始的决定路径,归档后tar生成的文件会去除开头的/,cpio却不会。
cpio是通过stdin获取输入文件名,并将归档文件的内容写入stdout,我们必须将stdout重定向到一个文件,以接收cpio的输出。
如:
echofile1file2file3|cpio-ov>1.cpio
-o指定输出
-v打印归档文件列表,stderr
列出cpio归档文件中的内容:
cpio-it<1.cpio
-i指定输入
-t表示列出归档文件内容
cpio-id<1.cpio
-d表示提取归档文件的内容。
rar
a归档与压缩
例:
raratest.rarfile1.txt若test.rar文件不存在,则打包file1.txt文件成test.rar
例:
raratest.rarfile2.txt若test.rar文件已经存在,则添加file2.txt文件到test.rar中
(这样test.rar中就有两个文件了)
注,如果操作文档中已有某文件的一份拷贝,则a命令更新该文件,对目录也可以进行操作
例:
raratest.rardir1
x解压到指定的路径dir,并且保存当前的目录结构。
例:
rarxtest.rar
这样解压的话,dir1就会保持原来的目录结构
rarxtest.rar~/tmp
这样解压的话,test会放到~/tmp目录下
e将文件解压到指定的目录dir,只是文件放到指定的dir中,谨慎使用
例:
raretest.rardir
注:
用e解压的话,不仅原来的file1.txt和file2.txt被解压到当前目录,就连test内部的目录里面的所有文件也被解压到当前目录下,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压
c对操作文档添加说明注释
rarctest.rar
(会出现Readingcommentfromstdin字样,然后输入一行或多行注释,以ctrl+d结束)
cf添加文件注释,类似上面的c,不过这个是对压缩文档中每个文件进行注释
cw将文档注释写入文件
例:
rarcwtest.rarcomment.txt
d从文档中删除文件
例:
rardtest.rarfile1.txt
k锁定文档
例:
rarktest.rar锁定文档后,该文档就无法进行任何更新操作了
r修复文档
例:
rarrtest.rar
当rar文件有问题时,可以尝试用该命令进行修复(鬼知道有多少用)
s转换文档成自解压文档
例:
rarstest.rar
会生成一个test.sfx的可执行文档,运行它的效果就相当于rarxtest.rar,
适合于向没有rar的用户传输文件
t检测文档
例:
rarttest.rar
检测test.rar的完整性,一般压缩完大型文件准备传输前最好用这个命令来确保文件的正确性
p[password]设定密码
例:
raratest.rar*.txt-pprettygirl
压缩文件设定密码为prettygirl,解压时无密码无法进行操作
如果觉得明码密码太过暴露,可以使用
raratest.rar*.txt-p
则rar程序会询问你要使用什么密码,不回显
zip与unzip
可以用它来归档和压缩:
主要用于Internet上的文件
zipfile.zipFILES/DIRS
如:
zipfile.zipfile
该命令会生成file.zip
zip-rfile.zipfiledir
当有目录时,需用-r指定递归操作
zip不仅拥有tar的归档功能,还拥有gzipbzip2lzma等的压缩功能,单zip压缩后不会删除源文件
解压:
unzipfile.zip
1、如果需要更新归档文件的内容,使用-u
zipfile.zip-unewfile
2、从归档文件中删除文件,使用-d
zip-dfile.zipfile.txt
3、列出文档文件中的内容
unzip-lfile.zip
ar
ar[-c][-l][-g|-o][-s][-v][-C][-T][-z]{-h|-p|-t|-x}[-X{32|64|32_64}]ArchiveFile[File...]
ar[-c][-l][-g|-o][-s][-v][-C][-T][-z]{-m|-r[-u]}[{-a|-b|-i}PositionName][-X{32|64|32_64}]ArchiveFileFile...
ar[-c][-l][-g|-o][-s][-v][-C][-T][-z]{-d|-q}[-X{32|64|32_64}]ArchiveFileFile...
ar[-c][-l][-v][-C][-T][-z]{-g|-o|-s|-w}[-X{32|64|32_64}]ArchiveFile
描述
ar命令维护链接编辑器使用的索引库。
ar命令将一个或多个指定的文件并入单个写成ar压缩文档格式的压缩文档文件。
当ar命令创建库时,它创建可传输格式的报头;当它创建或更新库时,它重建符号表。
ar命令识别两种文件格式。
“大压缩文档格式”ar_big,是缺省文件格式并支持32位和64位目标文件。
“小压缩文档格式”可用于创建在比AIX4.3更老的版本上可识别的压缩文档,请参阅-g标志。
如果将一个64位的对象添加到小格式压缩文档,除非指定了-g,否则ar首先将它转换为大格式。
缺省情况下,ar仅处理32位目标文件;压缩文档中任何64位目标文件在没有提示的情况下被忽略。
要更改此行为,请使用-X标志或设置OBJECT_MODE环境变量。
标志在ar命令中,可以从集cClosTv中指定任何数量的可选标志。
必须从标志集dhmopqrstwx中指定一个标志。
如果选择-m或-r标志,您可能还要指定一个位置标志(-a、-b或-i);对于-a、-b或-i标志,您必须还指定在
ArchiveFile(PositionName)中一个文件的名称,此名称紧跟在标志列表后,并由空格隔开。
-aPositionName在PositionName参数标识的现有文件后安置指定的文件。
-bPositionName在PositionName参数标识的现有文件前安置指定的文件。
-c禁止在创建库时产生的正常消息。
-C阻止解压缩的文件替换文件系统中同名的文件。
-d从库中删除指定的文件。
-g对压缩文档成员进行排序以确保用最小数量的未用空间获得最大的加载效率。
在几乎所有情况下,-g
标志以压缩文档成员的逻辑链接顺序物理地安置它们。
最终生成的压缩文档通常写成小格式,这样该标志可用来将大格式压缩文档转换成小格式压缩文档。
包含64位XCOFF对象的压缩文档不能创建成或转换至小格式。
-h将指定的文件的成员报头中的修改时间设置为当前日期和时间。
如果不指定任何文件名称,则ar命令设置所有成员报头的时间戳记。
此标志不能和-z标志一起使用。
-iPositionName在PositionName参数标识的现有文件前安置指定的文件(和-b相同)。
-l将临时文件置于当前(本地)目录中,而非TMPDIR目录中(缺省为/tmp)。
-m将指定的文件移动到库中的某个其它位置。
缺省情况下,它将指定的文件移动到库的末尾。
使用位置标志(abi)来指定某个其它位置。
-o对压缩文档成员进行排序以确保用最小数量的未用空间获得最大的加载效率。
在几乎所有情况下,-o标志以压缩文档成员的逻辑链接顺序物理地安置它们。
最终生成的压缩文档通常写成大格式,这样该标志可用来将小格式压缩文档转换成大格式压缩文档。
-p将Files参数中指定的文件的内容或在ArchiveFile参数中指定的所有文件(如果您不指定任何文件)都写至标准输出。
-q将指定的文件添加到库的末尾。
另外,如果指定同一个文件两次,它可能被放入库中两次。
-r如果指定的文件已经存在于库中,则替换它。
因为指定的文件在库中占据它们替换的文件的同一个位置,位置标志没有任何附加的影响。
当和
-u标志(更新)一起使用时,-r标志仅替换自从最后一次添加到库中以后修改的文件。
如果指定的文件不存在于库中,则ar命令添加它。
在这种情况下,位置标志影响放置。
如果不指定位置,则将新文件置于库的末尾。
如果指定同一个文件两次,它可能被放入库中两次。
-s无论ar命令是否修改了库内容都强制重新生成库符号表。
请在库上使用strip命令之后,使用此标志来恢复库符号表。
-t将库的目录写至标准输出。
如果指定文件名称,则仅显示指定的那些文件。
如果不指定任何文件,-t标志列出库中的所有文件。
-T如果压缩文档成员名称比文件系统支持的长,则允许文件名称截短。
此选项无效,因为文件系统支持的名称长度等于255个字符的最大压缩文档成员名称。
-u仅复制自它们最后一次复制起更改的文件(请参阅先前讨论过的-r标志)。
-v将建立新库的详细的逐个文件的描述写至标准输出。
当和-t标志一起使用时,它给出类似于ls-l命令给出的长列表。
当和-x标志一起使用时,它在每个文件前加一个名称。
当和-h标志一起使用,它列出成员名称和更新的修改时间。
-w显示压缩文档符号表。
每个符号和其中定义此符号的文件的名称一起列出。
-x通过将指定的文件复制到当前目录来解压缩它们。
这些副本和原始文件(保留在库中)具有相同的名称。
如果不指定任何文件,-x标志复制库中的所有文件。
此过程不会更改库。
-Xmode指定ar应检查的目标文件的类型。
mode必须是以下项之一:
32仅处理32位目标文件
64仅处理64位目标文件
32_64处理32位和64位目标文件
缺省值是处理32位目标文件(忽略64位对象)。
mode还可以用OBJECT_MODE
环境变量来设置。
例如,OBJECT_MODE=64使ar处理任何64位对象并忽略32位对象。
-X标志覆盖OBJECT_MODE变量。
-z创建压缩文档的临时副本并对副本执行所有要求的修改。
当所有操作成功完成时,压缩文档的工作副本覆盖原始副本。
此标志不能和
-h标志一起使用。
ArchiveFile指定压缩文档文件名称;必需。
MemberName...各压缩文档成员的名称。
退出状态该命令返回以下出口值:
0成功完成。
>0发生错误。
示例
1.要创建一个库,请输入:
ar-v-qlib.astrlen.ostrcpy.o
如果lib.a库不存在,则此命令创建它,并将文件strlen.o和strcpy.o
的副本输入其中。
如果lib.a库存在,则此命令在不检查相同成员的情况下,将新的成员添加到末尾。
v标志设置详细方式,在此方式中ar命令在其进行时显示进程报告。
2.要显示库的目录,请输入:
ar-v-tlib.a
此命令列出了lib.a库的目录,显示类似于ls-l命令的输出的长列表。
要只列出成员文件名称,则省略-v标志。
3.要替换或添加新成员到库中,请输入:
ar-v-rlib.astrlen.ostrcat.o
此命令替换成员strlen.o和strcat.o。
如果lib.a如示例1中显示的那样创建,则替换strlen.o成员。
因为不存在名为strcat.o的成员,所以它被添加到库的末尾。
4.要指定在何处插入新成员,请输入:
ar-v-r-bstrlen.olib.astrcmp.o
此命令添加strcmp.o文件,并将该新成员置于strlen.o成员之前。
5.要更新一个已经更改过的成员,请输入:
ar-v-r-ulib.astrcpy.o
此命令替换现有strcpy.o成员,但仅当文件strcpy.o
自从最后一次添加到库后已经修改时才替换它。
6.要更改库成员的顺序,请输入:
ar-v-m-astrcmp.olib.astrcat.ostrcpy.o
此命令将成员strcat.o和strcpy.o移动到紧跟在strcmp.o成员之后的位置。
保留strcat.o和strcpy.o成员的相对顺序。
换句话说,如果在移动之前strcpy.o成员在strcat.o成员之前,那么(移动后)它依旧如此。
7.要解压缩库成员,请输入:
ar-v-xlib.astrcat.ostrcpy.o
此命令将成员strcat.o和strcpy.o分别复制到名为strcat.o和strcpy.o的文件。
8.要解压缩并重命名一个成员,请输入:
ar-plib.astrcpy.o>stringcopy.o
此命令将成员strcpy.o复制到一个名为stringcopy.o的文件。
9.要删除一个成员,请输入:
ar-v-dlib.astrlen.o
此命令从lib.a库中删除成员strlen.o。
10.要从多个用ld命令创建的共享模块中创建一个压缩文档库,请输入:
ar-r-vlibshr.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 压缩 解压缩 命令 小结