您的位置:首页 > 运维架构 > Linux

linux下的文件压缩的方法总结

2017-11-10 16:18 267 查看

tar命令

tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。


参数          作用
-c          创建压缩文件
-x          解开压缩文件
-t          查看压缩包内有那些文件
-z          用Gzip压缩或解压
-j          用bzip2压缩或解压
-v          显示压缩或解压的过程
-f          目标文件名
-p          保留原始的权限与属性
-P          使用绝对路径来压缩
-C          指定解压到的目录


压缩文件:
<1>tar命令压缩文件为tar包
tar -cvf test.tar test
<2>tar命令压缩文件为tar.gz包
tar -czvf test.tar.gz test
<3>tar命令压缩文件为tar.bz2包
tar -cjvf test.tar.bz2 test
<4>如果要把一个目录下的文件打包,只需在将文件的名字换成文件夹的名字
将/etc目录内文件打包并通过gzip格式压缩:
tar czvf etc.tar.gz /etc


解压缩:
将etc.tar.gz解压到/root/etc目录中:
tar xzvf etc.tar.gz -C /root/etc


zip/unzip

zip是linux上的一个压缩程序,压缩包以.zip为后缀。
压缩:
-A              调整可执行的自动解压缩文件。
-b<工作目录>     指定暂时存放文件的目录。
-c              替每个被压缩的文件加上注释。
-d              从压缩文件内删除指定的文件。
-D              压缩文件内不建立目录名称。
-f              此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F              尝试修复已损坏的压缩文件。
-g              将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h              在线帮助。
-i<范本样式>     只压缩符合条件的文件。
-j              只保存文件名称及其内容,而不存放任何目录名称。
-J              删除压缩文件前面不必要的数据。
-k              使用MS-DOS兼容格式的文件名称。
-l              压缩文件时,把LF字符置换成LF+CR字符。
-ll             压缩文件时,把LF+CR字符置换成LF字符。
-L              显示版权信息。
-m              将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串>    不压缩具有特定字尾字符串的文件。
-o              以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q              不显示指令执行过程。
-r              递归处理,将指定目录下的所有文件和子目录一并处理。
-S              包含系统和隐藏文件。
-t<日期时间>     把压缩文件的日期设成指定的日期。
-T              检查备份文件内的每个文件是否正确无误。
-u              更换较新的文件到压缩文件内。
-v              显示指令执行过程或显示版本信息。
-V              保存VMS操作系统的文件属性。
-w              在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式>     压缩时排除符合条件的文件。
-X              不保存额外的文件属性。
-y              直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z              替压缩文件加上注释。
-$              保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率>      压缩效率是一个介于1-9的数值。


实例:压缩服务器上当前目录的内容为xxx.zip文件
zip -r xxx.zip ./*

zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件

zip -m myfile.zip ./rpm_info.txt
向压缩文件中myfile.zip中添加rpm_info.txt文件


解压缩unzip
参 数:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t 检查压缩文件是否正确。

-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

-v 执行是时显示详细的信息。

-z 仅显示压缩文件的备注文字。

-a 对文本文件进行必要的字符转换。

-b 不要对文本文件进行字符转换。
4000

-C 压缩文件中的文件名称区分大小写。

-j 不处理压缩文件中原有的目录路径。

-L 将压缩文件中的全部文件名改为小写。

-M 将输出结果送到more程序处理。

-n 解压缩时不要覆盖原有的文件。

-o 不必先询问用户,unzip执行后覆盖原有文件。

-P<密码> 使用zip的密码选项。

-q 执行时不显示任何信息。

-s 将文件名中的空白字符转换为底线字符。

-V 保留VMS的文件版本信息。

-X 解压缩时同时回存文件原来的UID/GID。

[.zip文件] 指定.zip压缩文件。

[文件] 指定要处理.zip压缩文件中的哪些文件。

-d<目录> 指定文件解压缩后所要存储的目录。

-x<文件> 指定不要处理.zip压缩文件中的哪些文件。

-Z unzip -Z等于执行zipinfo指令


<1>unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
<2>当前目录下有abc1.zip,abc2.zip和abc3.zip,想一起解压缩它们:
# unzip abc\?.zip
注释:?表示一个字符,如果用*表示任意多个字符。
<3>我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:
# unzip -v large.zip
<4>我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了
# unzip -t large.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 压缩 gzip tar zip