linux系统压缩与解压

zip

主流的压缩格式包括 tar、rar、zip、war、gzip、bz2、iso 等。从性能上比较,TAR、WAR、
RAR 格式较 ZIP 格式压缩率较高,但压缩时间远远高于 ZIP,Zip 命令行工具可以实现对 zip
属性的包进行管理,也可以将文件及文件及打包成 zip 格式

zip命令

功能说明:压缩文件。

语  法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工 作目录>][-ll][-n <字 尾字符串>][-t <日 期时间>][-<压 缩效率>][压 缩文件][文件…][-i <范本样式>][-x <范本样式>]

补充说明:zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具 有".zip"扩展名 的压缩文件。

常见参数
-c 添加一行注释;
-d 从压缩文件删除文件;
-e 加密 - 不要压缩这些后缀;
-f freshen:只更改文件;
-u update:只更改或新文件;
-m 中的条目移动到 zipfile(删除 OS 文件);
-r 递归到目录;
-j junk(不记录)目录名;
-l 将 LF 转换为 CR LF(-11 CR LF 至 LF);
-1 压缩更快 1-9 压缩更好;
-q 安静操作,不输出执行的过程;
-v verbose 操作/打印版本信息;
-z 添加 zipfile 注释;
-o 读取名称使 zip 文件与最新条目一样旧;
-x 不包括以下名称;
-F 修复 zipfile(-FF 尝试更难);
-D 不要添加目录条目;
-T 测试 zip 文件完整性;
-X eXclude eXtra 文件属性;
案例
例1. 压缩1.txt

[root@sll songlldc]# zip 1.txt.zip 1.txt

在这里插入图片描述

例2. 将当前目录下的所有文件和文件夹全部压缩成test.zip文件,-r表示递归压缩子目录下所有文件

[root@sll songlldc]# zip -r test.zip ./*

打包目录

[root@sll songlldc]# zip test2.zip test2/*

例3. 删除压缩文件test1.zip中test.MYI文件

[root@sll songlldc]# zip -d test1.zip test.MYI

删除打包文件目录下的文件

[root@sll songlldc]# zip -d test2.zip test2/ln.log
deleting: tests/ln.log

unzip命令

功 能说明:解压缩zip文 件

语  法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密 码>][.zip文 件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

补充说明:unzip为.zip压缩文件的解压缩程序。

参 数:

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

-f 更 新现有的文件。

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

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

-t 检 查压缩文件是否正确。,但不解压。

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

-v 执 行是时显示详细的信息。或查看压缩文件目录,但不解压。

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

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

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

-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:将压缩文件text.zip在当前目录下解压缩。

[root@sll songlldc]# unzip test.zip

例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

[root@sll songlldc]# unzip -n test.zip -d /tmp

例3:查看压缩文件目录,但不解压。

[root@sll songlldc]# unzip -v test.zip

例4:将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。

[root@sll songlldc]# unzip -o test.zip -d tmp/

tar

参数:

-A, --catenate, --concatenate 将存档与已有的存档合并
-c, --create 建立新的存档
-d, --diff, --compare 比较存档与当前文件的不同之处
–delete 从存档中删除
-r, --append 附加到存档结尾
-t, --list 列出存档中文件的目录
-u, --update 仅将较新的文件附加到存档中
-x, --extract, --get 解压文件
-j, --bzip2, --bunzip2 有 bz2 属性的软件包;
-z, --gzip, --ungzip 有 gz 属性的软件包;
-b, --block-size N 指定块大小为 Nx512 字节(缺省时 N=20);
-B, --read-full-blocks 读取时重组块;
-C, --directory DIR 指定新的目录;
–checkpoint 读取存档时显示目录名;
-f, --file [HOSTNAME:]F 指定存档或设备,后接文件名称;
–force-local 强制使用本地存档,即使存在克隆;
-G, --incremental 建立老 GNU 格式的备份;
-g, --listed-incremental 建立新 GNU 格式的备份;
-h, --dereference 不转储动态链接,转储动态链接指向的文件;
-i, --ignore-zeros 忽略存档中的 0 字节块(通常意味着文件结束);
–ignore-failed-read 在不可读文件中作 0 标记后再退出;
-k, --keep-old-files 保存现有文件;从存档中展开时不进行覆盖;
-K, --starting-file F 从存档文件 F 开始;
-l, --one-file-system 在本地文件系统中创建存档;
-L, --tape-length N 在写入 N*1024 个字节后暂停,等待更换磁盘;
-m, --modification-time 当从一个档案中恢复文件时,不使用新的时间标签;
-M, --multi-volume 建立多卷存档,以便在几个磁盘中存放;
-O, --to-stdout 将文件展开到标准输出;
-P, --absolute-paths 不要从文件名中去除 ‘/’;
-v, --verbose 详细显示处理的文件;
–version 显示 tar 程序的版本号;
–exclude FILE 不把指定文件包含在内;
-X, --exclude-from FILE 从指定文件中读入不想包含的文件的列表。

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

[root@sll songlldc]# tar -cvf /tmp/etc.tar /etc    <==仅打包,不压缩!
[root@sll songlldc]# tar -zcvf /tmp/etc.tar.gz /etc  <==打包后,以 gzip 压缩
[root@sll songlldc]# tar -jcvf /tmp/etc.tar.bz2 /etc  <==打包后,以 bzip2 压缩

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

[root@sll songlldc]# tar -ztvf /tmp/etc.tar.gz

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

[root@sll songlldc]# cd /usr/local/src
[root@sll songlldc]# tar -zxvf /tmp/etc.tar.gz

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

[root@sll songlldc]# cd /tmp
[root@sll songlldc]# tar -zxvf /tmp/etc.tar.gz etc/passwd

猜你喜欢

转载自blog.csdn.net/songlldc/article/details/89297550
今日推荐