跳到主内容

LYRA

Lyra 正在加载

Linux 指令笔记(五)

Linux鬼鬼

解压缩 操作

在 Linux 中经常会下载到压缩文件,而压缩文件的格式有很多,比如 ziprargzxztar.gztar.xz 等。

比较常见的就是各种 .tar.tar.xz.tar.gz.tar.bz.tar.bz2.tar.Z 后缀压缩包,这几个的解压缩命令基本一样,说明一下参数的意义。

tar 本身只是一个打包的作用,而 .tar 后面的 .xz / .gz / .bz 等等才是压缩格式,也就是比如 log.tar.gz 压缩包,就是先用 .tar 把指定文件/文件夹打包到一起,然后再用 gz 来压缩打包后的 .tar.tar.gz

tar 参数介绍
  • -x - 是从压缩文件提取(解压)文件出来,所以在解压命令中都有这个参数
  • -c - 创建一个新的压缩包文件,所以在压缩命令中都有这个参数
  • -f - 指定要解压的压缩包文件或要压缩的文件/文件夹,所以这个参数必须放在解压缩命令参数的最后,然后后面跟着要解压的压缩包文件或要压缩的文件/文件夹
  • -j - 解压缩 bz / bz2 格式的参数
  • -J - 解压缩 xz / lzip 格式的参数
  • -z - 解压缩 gz / tgz 格式的参数
  • -Z - 解压缩 Z 格式的参数
  • -v - 详细列出解压缩过程中处理的文件

更多的命令可以用 tar --help 来查看。


tar、gz、zip 等解压压缩包示例

解压压缩包说明

Terminal window
# 解压后缀为 .tar 的压缩包
tar -xf log.tar
# 解压后缀为 .tar.xz 的压缩包
tar -xJf log.tar.xz
# 解压后缀为 .tar.gz 的压缩包
tar -xzf log.tar.gz
# 解压后缀为 .gz 的压缩包,如提示命令不存在,请安装:
# yum install gzip -y
# 或
# apt-get install gzip -y
gzip -d log.gz
gunzip log.gz
# 解压后缀为 .bz / .bz2 / tar.bz2 的压缩包
bzip2 -d log.bz
bunzip2 log.bz
tar -jxf log.tar.bz
bzip2 -d log.bz2
bunzip2 log.bz2
tar -jxf log.tar.bz2
# 解压后缀为 .Z / tar.Z 的压缩包
uncompress log.Z
tar xZf log.tar.Z
# 解压后缀为 .rar 的压缩包,如提示命令不存在,请安装:
# yum install unrar -y
# 或
# apt-get install unrar -y
# 注意 rar 和 unrar 是分开的
unrar x log.rar
# 解压后缀为 .zip 的压缩包,如提示命令不存在,请安装:
# yum install unzip -y
# 或
# apt-get install unzip -y
# 注意 zip 和 unzip 是分开的
unzip log.zip

提示:现在的 GNU tar 解压时会自动识别压缩格式,tar xf log.tar.gztar xf log.tar.xz 不写 -z / -J 也能解开,只记一个 tar xf 就够了。

更多的命令可以用 tar --help / gzip --help / unrar --help / unzip --help 来查看。


压缩 文件/文件夹 示例

压缩文件/文件夹说明

Terminal window
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.tar 压缩包
tar -cf log.tar log.txt
tar -cf log.tar log
# 如果要压缩多个文件和文件夹,那么只需要在后面一直加下去即可
tar -cf log.tar log.txt log2.txt log bash
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.tar.xz 压缩包
tar -cJf log.tar.xz log.txt
tar -cJf log.tar.xz log
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.tar.gz 压缩包
tar -czf log.tar.gz log.txt
tar -czf log.tar.gz log
# 压缩当前目录下的 log.txt 文件为 log.txt.gz
# 注意 gzip 不能指定输出文件名,也不能直接压缩文件夹(文件夹要先用 tar 打包再压缩)
gzip log.txt
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.tar.bz 压缩包
# -j 就是 bzip2,扩展名叫 .bz 还是 .bz2 没有区别
tar cjf log.tar.bz log.txt
tar cjf log.tar.bz log
# 用 bzip2 直接压缩单个文件为 log.txt.bz2(同样不能压缩文件夹)
bzip2 -z log.txt
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.tar.bz2 压缩包
tar cjf log.tar.bz2 log.txt
tar cjf log.tar.bz2 log
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.Z / log.tar.Z 压缩包
# compress 同样只能处理单个文件
compress log.txt
tar cZf log.tar.Z log.txt
tar cZf log.tar.Z log
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.rar 压缩包,如提示命令不存在,请安装:
# yum install rar -y
# 或
# apt-get install rar -y
# 注意打包用的是 rar,unrar 只能解压
rar a log.rar log.txt
rar a log.rar log
# 分别压缩当前目录下的 log.txt 文件 / log 文件夹为 log.zip 压缩包,如提示命令不存在,请安装:
# yum install zip -y
# 或
# apt-get install zip -y
# 注意 zip 和 unzip 是分开的
zip log.zip log.txt
zip log.zip log

更多的命令可以用 tar --help / gzip --help / rar --help / zip --help 来查看。

版权许可

本文采用 CC BY-SA 4.0 协议授权

保留署名与相同方式共享即可转载、引用或再创作。转载时请注明出处并附上本文链接。

评论

留言系统基于 Disqus,发言前可查看 评论规则。部分网络环境可能无法正常加载。