Linux下压缩解压缩打包命令 tar、zip、unzip、rar 用法与示例

目录
[隐藏]

1 tar 命令参数与用法

1.1 tar 命令参数及含义

如下 5 个是独立的命令参数,压缩与解压都要用到且只用到其中的一个:

-c:建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

可选参数:

-z:有gzip属性的(gzip 压缩)
-j:有bz2属性的(bzip2 压缩)
-Z:有compress属性的(compress 压缩)
-v:显示所有过程
-O:将文件解开到标准输出

参数 -f 是必须的:

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

1.2 tar 命令压缩与解压缩文件示例

# 将所有 .jpg 的文件打成一个名为 lzwme.tar 的包
tar -cf lzwme.tar *.jpg

# 将所有 .jpg 的文件打成一个名为 lzwme.tar.gz 的包(gzip 压缩)
tar -czf lzwme.tar.gz *.jpg

# 将所有 .jpg 的文件打成一个名为 lzwme.tar.bz2 的包(bzip2 压缩)
tar -cjf lzwme.tar.bz2 *.jpg

# 将所有 .jpg 的文件打成一个名为 lzwme.tar.Z 的包(compress 压缩)
tar -cZf lzwme.tar.Z *.jpg

# 将所有 .gif 的文件增加到 lzwme.tar 的包里面去。`-r` 是表示追加文件:
 tar -rf lzwme.tar *.gif

# 更新已存在的 `lzwme.tar` 包中的 `logo.gif` 文件。`-u` 表示更新文件:
tar -uf lzwme.tar logo.gif

# 列出 `lzwme.tar` 包中的所有文件。`-t` 表示列出文件:
tar -tf lzwme.tar

# 解出 lzwme.tar 包中所有文件,`-x` 表示解开
tar -xf lzwme.tar

2 zip 命令参数与用法

2.1 zip 命令基本用法

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

2.2 zip 命令参数及含义

-A: 调整可执行的自动解压缩文件。
-b:<工作目录> 指定暂时存放文件的目录。
-c: 替每个被压缩的文件加上注释。
-d: 从压缩文件内删除指定的文件。
-D: 压缩文件内不建立目录名称。
-f: freshen,更新发生改变的文件
-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的数值。

2.3 zip 命令压缩文件示例

# 目录压缩:将 lzwme 目录下的所有文件及子目录压缩为 lzwme.zip 文件
zip -r lzwme.zip lzwme

# 多文件压缩:将 1.txt 2.jpg lzwme 目录压缩为 lzwme.zip 文件
zip -r lzwme.zip 1.txt 2.jpg lzwme

# 文件排除:将 lzwme 目录压缩为 lzwme-1.zip 文件,但排除 3.txt
zip -r lzwme-1.zip lzwme -x 1.txt

# 删除文件:从压缩包 lzwme.zip 中删除 1.txt 文件
zip lzwme.zip -d 1.txt

3 unzip 命令参数与用法

3.1 unzip 命令基本用法

unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

3.2 unzip 命令参数及含义

-c: 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f: 更新现有的文件。不创建新的文件
-l: 显示压缩文件内所包含的文件。
-p: 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t: 检查压缩文件是否正确。
-u: 更新已有文件,并且也其他文件解压出来
-v: 执行是时显示详细的信息。
-z: 仅显示压缩文件的备注文字。
-a: 对文本文件进行必要的字符转换。
-b: 不要对文本文件进行字符转换。
-C: 压缩文件中的文件名称区分大小写。
-j: 不处理压缩文件中原有的目录路径。
-L: 将压缩文件中的全部文件名改为小写。
-M: 将输出结果送到more程序处理。
-n: 解压缩时不要覆盖原有的文件。
-o: 不必先询问用户,unzip执行后覆盖原有文件。
-P <密码>: 使用zip的密码选项。
-q: 执行时不显示任何信息。
-s: 将文件名中的空白字符转换为底线字符。
-V: 保留VMS的文件版本信息。
-X: 解压缩时同时回存文件原来的UID/GID。
-d <目录>:指定文件解压缩后所要存储的目录。
-x <文件>:指定不要处理 .zip 压缩文件中的哪些文件。
-Zunzip -Z 等于执行 zipinfo 指令

3.3 unzip 解压文件示例

# 将 lzwme.zip 文件解压到当前目录下
unzip lzwme.zip

# 将压缩包内的文件都解压到一级内目录
unzip -j lzwme.zip

# 验证 lzwme.zip 是否完整(比如可能只下载了一部分)
unzip -t lzwme.zip

4 zipinfo 命令参数

基本用法:

zipinfo [-12smlvChMtTz] file[.zip] [list…] [-x xlist…]

参数含义:

main listing-format options:

-s short Unix “ls -l” format (def.)
-1 filenames ONLY, one per line
-m medium Unix “ls -l” format
-2 just filenames but allow -h/-t/-z
-l long Unix “ls -l” format
-v verbose, multi-page format

miscellaneous options:

-h print header line
-t print totals for listed files or for all
-z print zipfile comment
-T print file times in sortable decimal format
-C be case-insensitive
-M page output through built-in “more”
-x exclude filenames that follow from listing

5 压缩与解压缩示例

5.1 tar、zip、rar 压缩示例

# 将目录里所有 jpg 文件打包成 lzwme.tar
tar -cvf lzwme.tar *.jpg
# 将目录里所有 jpg 文件打包成 lzwme.tar 后再用 gzip 压缩,命名为 lzwme.tar.gz
tar -czf lzwme.tar.gz *.jpg
# 将目录里所有 jpg 文件打包成 lzwme.tar 后再用 bzip2 压缩,命名为 lzwme.tar.bz2
tar -cjf lzwme.tar.bz2 *.jpg
# 将目录里所有 jpg 文件打包成 lzwme.tar 后再用 compress 压缩,命名为 lzwme.tar.Z
tar -cZf lzwme.tar.Z *.jpg
# 将目录里所有 jpg 文件打包成 lzwme.zip 文件。可能需要先下载 zip for linux
zip -r lzwme.zip *.jpg
# 将目录里所有 jpg 文件打包成 lzwme.rar 文件。可能需要先下载 rar for linux
rar a lzwme.rar *.jpg

5.2 tar、unzip、unrar 解压示例

# 解压 tar包
tar -xvf lzwme.tar
# 解压tar.gz
tar -xzvf lzwme.tar.gz
# 解压 tar.bz2
tar -xjvf lzwme.tar.bz2
# 解压tar.Z
tar -xZvf lzwme.tar.Z
# 解压zip
unzip lzwme.zip
# 解压rar
unrar e lzwme.rar

总结

  • *.tartar -xvf 解压
  • *.gzgzip -d 或者 gunzip 解压
  • *.tar.gz*.tgztar -xzf 解压
  • *.bz2bzip2 -d 或者用 bunzip2 解压
  • *.tar.bz2 用tar -xjf 解压
  • *.Zuncompress 解压
  • *.tar.Ztar -xZf 解压
  • *.rarunrar e 解压
  • *.zipunzip 解压
点赞 (0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code