您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

Linux 压缩命令

时间:2022-07-11 09:37:27  来源:  作者:斩获必有所得

linux 文件压缩命令

  • .Z 使用 compress 压缩文件
  • .zip 使用zip压缩文件
  • .gz 使用gzip压缩文件
  • .bz2 使用bzip2压缩文件
  • .xz 使用xz压缩文件
  • .tar 使用tar 工具打包归档,没有压缩文件
  • .tar.gz 使用tar 归档 在 gz 压缩文件
  • .tar.bz2 使用tar归档在bz2压缩文件
  • .tar.xz 使用tar归档在xz压缩文件

其中,compress已经过时了,因为太老,个别版本的linux已经不支持了,linux下的压缩工具还是以gzip和bzip2以及后加入的xz作为主力,但是由于这些工具,最早不能压缩目录,只能针对单一文件进行压缩,所以在日常使用中,他们都是配合着tar这个打包工具,由tar把目录中的很多文件打包成一个文件,再经由对应的工具进行压缩,所以我们会看上面的那些tar.*的压缩包。好了我们先来学习下这些压缩工具如何使用

压缩文件的优点如下

  • 文件更小,便于网络传输,效率更高;
  • 避免杂乱,可以减少文件个数,多个文件一起压缩;
  • 有些文件不能直接传输,比如安装程序,压缩后就可以传输了

压缩工具使用

compress

-d   解压压缩文件
-c   保留源文件,标准输出
-b   指定压缩率 9-16之间,值越大压缩效率越高
-f   强制解压覆盖源文件
-r   递归处理,将指定目录下的所有文件及子目录一并处理
-v   压缩统计信息
# 压缩文件
[root@ym test]# compress bigfile
[root@ym test]# ls bigfile.Z 
bigfile.Z
# -d 加压缩
[root@ym test]# compress -d bigfile.Z
[root@ym test]# ls
1test.sh  2test.sh  bigfile  --delete  file  passwd  test.sh
# -c 保留源文件
[root@ym test]# compress -c bigfile > bigfile.Z
[root@ym test]# ls bigfile*
bigfile  bigfile.Z

# -f 强制压缩文件不管是否存在
[root@ym test]# ls bigfile*
bigfile  bigfile.Z
[root@ym test]# compress -f bigfile
[root@ym test]# ls bigfile*
bigfile.Z

# -b 指定压缩率
[root@ym test]# compress -d bigfile.Z
# -r 递归压缩文件
[root@ym tmp]# compress -r ym
[root@ym tmp]# ls ym/test
1test.sh.Z  2test.sh.Z  bigfile.Z  --delete.Z  file.Z  passwd.Z

uncompress

-d   解压压缩文件
-c   保留源文件,标准输出
-b   指定压缩率 9-16之间,值越大压缩效率越高
-f   强制解压覆盖源文件
-r   递归处理,将指定目录下的所有文件及子目录一并处理
-v   压缩统计信息

gzip

[root@ym ~]# gzip -h
Usage: gzip [OPTION]... [FILE]...
  -c, --stdout     保留源文件,把压缩后的文件输出到标准输出设备
  -d, --decompress 解压缩文件
  -f, --force      强制压缩文件,不管是什么类型的文件及是否存在
  -h, --help       在线帮助
  -k, --keep       保留源文件不删除文件
  -l, --list       列出压缩文件的相关信息
  -L, --license    显示版本与版权信息
  -n, --no-name    压缩文件时,不保存原来的文件名称及时间戳记
  -N, --name       压缩文件时,保存原来的文件名称及时间戳记
  -q, --quiet      不显示警告信息
  -r, --recursive  递归处理,将指定目录下的所有文件及子目录一并处理
  -S, --suffix=SUF <压缩字尾字符串>或----suffix<压缩字尾字符串>  更改压缩字尾字符串
  -t, --test        测试压缩文件是否正确无误
  -v, --verbose     显示指令执行过程
  -V, --version     显示版本信息
  -1, --fast        此参数的效果和指定"-1"参数相同
  -9, --best        此参数的效果和指定"-9"参数相同
[root@ym test]# tar -c passwd > passwd.gz # 将passwd内容通过>标准输出到 passwd.gz 
[root@ym test]# ls
1test.sh  2test.sh  file.gz  passwd  passwd.gz  test.sh
[root@ym test]# gzip -d file.gz  # -d 选项 将压缩文件file.gz解压成file文件
[root@ym test]# ls
1test.sh  2test.sh  file  passwd  passwd.gz  test.sh
[root@ym test]# gzip -k file # -k选项压缩文件同时保留源文件
[root@ym test]# ls
1test.sh  2test.sh  file  file.gz  passwd  passwd.gz  test.sh
[root@ym test]# gzip -l file.gz # 查看压缩率信息
         compressed        uncompressed  ratio uncompressed_name
               1055                2660  61.2% file
#使用 dd 命令生成一个10M的文件
[root@ym test]# dd if=/dev/zero of=./bigfile bs=1M count=10
记录了10+0 的读入
记录了10+0 的写出
10485760 bytes (10 MB, 10 MiB) copied, 0.00384293 s, 2.7 GB/s
# 使用-9压缩率最高
[root@ym test]# gzip -9 bigfile
[root@ym test]# gzip -l bigfile.gz 
         compressed        uncompressed  ratio uncompressed_name
              10216            10485760  99.9% bigfile
# 解压并使用压缩率最低重新压缩查看
[root@ym test]# gzip -d bigfile.gz 
[root@ym test]# gzip -1 bigfile 
[root@ym test]# gzip -l bigfile.gz 
         compressed        uncompressed  ratio uncompressed_name
              45780            10485760  99.6% bigfile 
[root@ym ~]# gzip -r test # 压缩目录下所有文件 
[root@ym ~]# cd test
[root@ym test]# ls
1test.sh.gz  2test.sh.gz  bigfile.gz  file.gz  passwd.gz  test.sh.gz

zcat:不解压显示文件按内容

[root@ym test]# zcat 1test.sh.gz 
#!/bin/sh
seq 1 5 > /tmp/test.log
#exec < /tmp/test.log
cat /tmp/test.log
while read line
do
    echo $line
    
done
echo "ok"

bzip2

[root@ym ~]# bzip2 -h
   -h --help           打印帮助信息
   -d --decompress     强制解压文件
   -z --compress       强制压缩文件
   -k --keep           保留源文件不删除文件
   -f --force          覆盖输出文件
   -t --test           测试压缩文件
   -c --stdout         输出到标准输出
   -q --quiet          不显示警告信息
   -v --verbose        显示指令执行过程
   -L --license        显示版本
   -V --version        显示版本信息
   -s --small          使用最小内存
   --fast              -1 快速压缩,压缩比例最低
   --best              -9 压缩比例最高,压缩速度慢
[root@ym test]# bzip2 -z file # 压缩文件
[root@ym test]# ls
1test.sh  2test.sh  bigfile  file.bz2  passwd  test.sh
[root@ym test]# bzip2 -d file.bz2 #加压文件
[root@ym test]# bzip2 -k file # 保留源文件并压缩
[root@ym test]# ls
1test.sh  2test.sh  bigfile  file  file.bz2  passwd  test.sh

# 使用 -f 压缩文件会覆盖目录下同名的文件
[root@ym test2]# ls
file  file.bz2
[root@ym test2]# bzip2 -f file
[root@ym test2]# ls
file.bz2
# -c 使用管道符重定向到一个文件
[root@ym test2]# bzip2 -c file > file.bz2
[root@ym test2]# ls
file  file.bz2

bzcat:不解压显示文件内容

[root@ym test2]# bzcat file.bz2 
hello shell
hello Python/ target=_blank class=infotextkey>Python

xz

[root@ym ~]# xz --help
Usage: xz [OPTION]... [FILE]...
  -z, --compress      压缩文件
  -d, --decompress    解压文件
  -t, --test          测试压缩文件
  -l, --list          列出信息关于xz文件
  -k, --keep          保留原文不删除
  -f, --force         覆盖解压
  -c, --stdout        将信息输出
  -0 ... -9           指定压缩级别                     
  -e, --extreme       使用大量CPU快速压缩                    
  -T, --threads=NUM   使用多线程压缩                    
  -q, --quiet         不显示警告信息
  -v, --verbose       显示执行过程
  -h, --help          查看帮助
  -H, --long-help     更详细帮助信息
  -V, --version       像是版本信息
[root@ym test2]# xz -z file # -z 压缩文件file位file.xz
[root@ym test2]# ls
file.bz2  file.xz
# -d 解压 file.xz 位 file
[root@ym test2]# xz -d file.xz 
[root@ym test2]# ls
file  file.bz2
# -f 覆盖源文件压缩
[root@ym test2]# xz -f file
[root@ym test2]# ls
file.bz2  file.xz
# -l 显示压缩文件内容
[root@ym test2]# xz -l file.xz
Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1         84 B         26 B  3.231  CRC64   file.xz
# -e 会消耗大量cpu 压缩文件
[root@ym test2]# xz -e file
[root@ym test2]# ls
file.bz2.xz  file.xz
# -T 指定使用的线程数解压
[root@ym test2]# xz -d file.xz
[root@ym test2]# xz -T 4 file
[root@ym test2]# ls
file.bz2.xz  file.xz
# -C 压缩文件
[root@ym test2]# xz -d file.xz
[root@ym test2]# xz -c file > file.xz
[root@ym test2]# ls
file  file.bz2.xz  file.xz
[root@ym test2]# xz -l file.xz
Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
    1       1         84 B         26 B  3.231  CRC64   file.xz

xzcat:不显示解压的前提下查看文件内容

[root@ym test2]# xzcat file.xz
hello shell
hello python

zip

-q:不显示执行过程
-v:显示执行过程
-r:递归处理,将指定目录下的所有文件和子目录一并处理
-d:从压缩文件中删除指定文件
[root@ym test2]# zip file.zip file
  adding: file (deflated 12%)
[root@ym test2]# ls
file  file.bz2.xz  file.xz  file.zip
# -q 不显示压缩过程
[root@ym test2]# zip -q file1.zip file
[root@ym test2]# ls
file  file1.zip  file.bz2.xz  file.xz  file.zip

# -r 递归压缩目录问价
zip -r test test.zip

zip error: Nothing to do! (try: zip -r test . -i test.zip)
[root@ym ~]# zip -r abc.zip test
  adding: test/ (stored 0%)
  adding: test/1test.sh (deflated 29%)
  adding: test/2test.sh (deflated 31%)
  adding: test/bigfile (deflated 100%)
  adding: test/passwd (deflated 61%)
  adding: test/test.sh (deflated 14%)
  adding: test/file (deflated 61%)
  adding: test/file.bz2 (stored 0%)
# -v 显示压缩过程
[root@ym test2]# zip -rv test.zip test
  adding: test/ (in=0) (out=0) (stored 0%)
  adding: test/1test.sh (in=122) (out=87) (deflated 29%)
  adding: test/2test.sh (in=203) (out=141) (deflated 31%)
  adding: test/bigfile .    (in=10485760) (out=10190) (deflated 100%)
  adding: test/file (in=2660) (out=1032) (deflated 61%)
  adding: test/passwd   (in=2660) (out=1032) (deflated 61%)
  adding: test/test.sh  (in=37) (out=32) (deflated 14%)
total bytes=10491442, compressed=12514 -> 100% savings

unzip

-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换
-d:指定解压路径
-l:显示压缩文件内所包含的文件
-v:执行时显示详细的信息
-q:不显示解压过程
# -c显示解压内容到屏幕,并不解压文件按
[root@ym test2]# unzip -c test.zip
Archive:  test.zip
 extracting: test/                   

  inflating: test/1test.sh           
#!/bin/sh
seq 1 5 > /tmp/test.log
#exec < /tmp/test.log
cat /tmp/test.log
while read line
do
    echo $line
    
done
echo "ok"
........省略

# -d 指定解压路径
[root@ym test2]# unzip test.zip -d /tmp/
Archive:  test.zip
   creating: /tmp/test/
  inflating: /tmp/test/1test.sh      
  inflating: /tmp/test/2test.sh      
  inflating: /tmp/test/bigfile       
  inflating: /tmp/test/file          
  inflating: /tmp/test/passwd        
  inflating: /tmp/test/test.sh

# -l 显示解压信息,并不解压文件
[root@ym test2]# unzip -l test.zip
Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  07-08-2022 21:10   test/
      122  07-04-2022 00:11   test/1test.sh
      203  07-04-2022 00:17   test/2test.sh
 10485760  07-08-2022 19:40   test/bigfile
     2660  07-08-2022 19:30   test/file
     2660  07-08-2022 18:55   test/passwd
       37  07-08-2022 18:59   test/test.sh
---------                     -------
 10491442                     7 files

[root@ym test2]# unzip -q test.zip

tar

[root@ym test2]# tar --help
tar [选项...] [FILE]...
-c: 创建归档文件
-f:使用归档文件
-z: 压缩成gzip格式的归档文件
-j:压缩成bzip2 格式归档文件
-J:压缩xz 格式归档文件
-C:指定解压文件的位置
-r: 添加文件到归档末尾
-u: --update 仅追加比归档中副本更新的文件
-t: 列出存档中文件的目录
-k: 保留源文件
-x: 解压归档文件
-P: 保留路径符号
-v: 解压详细信息
--delete:从存档中删除
# 创建tar 归档文件操作

# -c 创建归档文件 -f 使用归档文件
[root@ym test]# tar cf passwd.tar passwd
[root@ym test]# ls
1test.sh  2test.sh  bigfile  file  passwd  passwd.tar  test.sh
# -rf 添加文件到归档文件中去
[root@ym test]# tar rf passwd.tar file
[root@ym test]# tar ft passwd.tar
passwd
file


# 创建tar.gz归档压缩文件

# cfz 创建归档压缩文件格式:.tar.gz
[root@ym test]# tar cfz passwd.tar.gz passwd
[root@ym test]# ls
1test.sh  2test.sh  bigfile  file  passwd  passwd.tar  passwd.tar.gz  test.sh

# cfj 创建归档压缩文件格式:.tar.bz
[root@ym test]# tar cfj passwd.tar.bz passwd
[root@ym test]# ls
1test.sh  bigfile  passwd      passwd.tar.bz  test.sh
2test.sh  file     passwd.tar  passwd.tar.gz

# cfx 创建归档压缩文件:tar.xz
[root@ym test]# tar cfJ passwd.tar.xz passwd
[root@ym test]# ls passwd.tar.xz
passwd.tar.xz

# 解压归档文件并指定保存位置
[root@ym test]# tar xfz passwd.tar.gz -C /tmp/
[root@ym test]# tar xfj passwd.tar.bz -C /tmp/
[root@ym test]# tar xfJ passwd.tar.xz -C /tmp/
# --delete 从归档文件中删除指定文件
[root@ym test]# tar --delete file -f passwd.tar
[root@ym test]# tar tf passwd.tar
passwd

# -P 保留归档中的文件路径(大写)
[root@ym ~]# tar cfP test.tar /tmp/ym/test
[root@ym a]# tar tfP test.tar 
/tmp/ym/test/
/tmp/ym/test/passwd.tar
/tmp/ym/test/1test.sh
/tmp/ym/test/2test.sh
/tmp/ym/test/bigfile
/tmp/ym/test/file
/tmp/ym/test/passwd
/tmp/ym/test/test.sh
/tmp/ym/test/passwd.tar.xz
/tmp/ym/test/passwd.tar.gz
/tmp/ym/test/passwd.tar.bz
/tmp/ym/test/passwd.gar.xz
/tmp/ym/test/--delete


Tags:Linux 压缩   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Linux 压缩命令
linux 文件压缩命令 .Z 使用 compress 压缩文件 .zip 使用zip压缩文件 .gz 使用gzip压缩文件 .bz2 使用bzip2压缩文件 .xz 使用xz压缩文件 .tar 使用tar 工具打包归档,没有压...【详细内容】
2022-07-11  Search: Linux 压缩  点击:(450)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(10)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(26)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(18)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(16)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(61)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(55)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(61)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(89)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(74)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(94)  评论:(0)  加入收藏
站内最新
站内热门
站内头条