• linux文件压缩、解压缩以及归档


    一、文件压缩、解压缩

    1.linux  compress命令(compress/uncompress)

    (1)压缩文件:

    1. [root@server ~]# du -sh passwd1---查看文件大小
    2. [root@server ~]# time compress passwd1---time:查看时间 compress:将文件进行压缩
    3. real 0m0.012s
    4. user 0m0.004s
    5. sys 0m0.006s

    压缩后文件变成passwd.Z

    (2)解压:

    法1:compress -d passwd1.Z

    法2:uncompress passwd1.Z

    2.zip格式:

    (1)zip是可以既归档又压缩的工具,也可以压缩目录

    (2)命令格式:

    • zip FILE
    • unzip FILE
    • unzip -d FILE +路径

    (3)示例:

    <1> 压缩文件passwd1

    [root@server ~]# time zip passwd1.zip passwd1---内容:将passwd1文件压缩为passwd1.zip

    <2> 将f1-6.txt文件压缩(压缩文件可以使用通配符)

    [root@server ~]# zip f.zip f[1-6].txt

    <3> 压缩目录 -r

    [root@server ~]# zip -r dir1.zip dir1/

    [root@server ~]# unzip dir1.zip -d /opt/---解压文件到指定/opt目录下

    <4> 向压缩好的文件中添加文件 -m

    [root@server ~]# zip -m f.zip passwd---将passwd文件添加到压缩文件f.zip中

    <5> 在压缩文件中删除文件 -d

    [root@server ~]# zip -d f.zip passwd---在压缩文件f.zip文件中删除passwd

    <6> 压缩文件时排除个别文件 -x

    [root@server ~]# zip passwd1.zip f*.txt -x f[1-6].txt---将f*.txt文件压缩到passwd1.zip文件中,排除f[1-6].txt

    <7> 解压文件 unzip
    默认解压在当前路径,如果要解压到指定路径,使用 -d pathname

    [root@server ~]# unzip passwd1.zip -d /opt/ ---将压缩文件passwd1.zip解压到opt目录下

    3.gzip(.gz)、bzip2(.bz2)、xz(.xz)、lzip(.lz)

    (1)查看相应格式是否存在

    lzip默认未安装,可以在链接上找到系统版本对应的lzip进行安装。

    (2)gz

    • 压缩

    [root@server ~]# time gzip passwd1---将passwd1文件压缩

    • 解压 

    [root@server ~]# gzip -d passwd1.gz---将文件解压(-d 默认解压到当前路径)

    • 文件压缩后保留原始文件

    [root@server ~]# gzip -c passwd1 > passwd1.gz---将文件压缩然后重定向输出到原位置

    • 查看压缩文件内容---zcat  zless

    [root@server ~]# zcat test1.txt.gz ---查看压缩文件内容

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    [root@server ~]# zless test1.txt.gz

    (3)bzip2

    • 压缩

    [root@server ~]# time bzip2 passwd2---将passwd2文件压缩

    • 解压

    [root@server ~]# bzip2 -d passwd2.bz2---将文件解压(-d 默认解压到当前路径)

    • 查看压缩文件内容---bzcat  bzless

    [root@server ~]# bzcat test1.txt.bz2 ---查看压缩文件内容

    [root@server ~]# bless test1.txt.bz2

    (3)xz

    • 压缩

    [root@server ~]# time xz passwd3---将passwd3文件压缩

    • 解压 

    [root@server ~]# xz -d passwd3.xz---将文件解压(-d 默认解压到当前路径)

    • 查看压缩文件内容---xzcat  xzless

    [root@server ~]# xzcat test1.txt.xz---查看压缩文件内容

    [root@server ~]# xzless test1.txt.xz

    (4)lz

    • 压缩

    [root@server ~]# time lzip passwd4---将文件passwd4压缩

    • 解压

    [root@server ~]# lzip -d passwd4.gz---将文件解压(-d 默认解压到当前路径) 

    (5)推荐方法:将文件压缩推荐xz和lz

    二、文件归档

    1.格式:

    • tar [选项] 打包文件名 被打包的源文件或目录列表
    • tar [选项] 打包文件名 [-C 目标文件夹]

    2.常用选项:

    选项功能
    c创建.tar格式的包文件
    x释放.tar格式的包文件
    t查看包中的文件列表
    v表示在命令执行时显示详细的提示信息
    f(包文件名)用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名; 当与-x选项一起使用时,则释放该选项指定的tar包文件。
    p打包时保留文件及目录的权限。
    z调用gzip程序,以gzip格式压缩或解压缩文件。
    j调用bzip2程序,以bzip2格式压缩或解压缩文件。
    J使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。
    C(目标路径名)解压包时指定解压包的目的位置。

    3.tar的常见作用:

    (1)创建(非压缩的)包文件

    • 命令:tar cvf 包文件名 要打包的目录或文件名列表
    • 功能:将指定的一个或多个文件或目录备份生成为一个指定的包文件。

    (2)创建带压缩的包文件(支持三种不同的压缩方式)

    • 命令:tar c[z j|J] f 压缩包文件名 要备份的目录或文件名
    1. czf .tar.gz
    2. [root@server ~]# tar -czvf passwd1.tar.gz passwd1(v---查看过程)
    3. cjf .tar.bz2
    4. [root@server ~]# tar -cjvf passwd2.tar.bz2 passwd2
    5. cJf .tar.xz
    6. [root@server ~]# tar -cJvf passwd3.tar.xz passwd3
    7. --lzip -cf .tar.lz
    8. [root@server ~]# tar --lzip -cf passwd4.tar.lz passwd4

    (3)列出包文件中的文件列表

    • 命令:tar t[v]f 包文件名

    (4)提取包文件到指定目录

    • 命令:tar x [z j|J] [v]f 包文件名 [ -C 目标位置]

    (5)将文件进行解压

    1. .tar.gz tar -xzf passwd1.tar.gz
    2. .tar.bz2 tar -xjf passwd2.tar.bz2
    3. .tar.xz tar -xJf passwd3.tar.xz
    4. .tar.lz tar --lzip -xf passwd4.tar.lz
    • -C (将文件解压到指定目录)

    [root@server ~]# tar --lzip -xf passwd1.tar.lz -C /opt/

    4.总结:

    (1)工作中解压一律使用xf

    (2)归档时可以排除文件

    • --exclude=PATTERN        排除以PATHERN指定的文件
    1. [root@server ~]# tar --exclude=f1.txt -cJvf f.txt.tar.xz f*.txt
    2. [root@server ~]# tar --exclude='f[1-4].txt' -czvf f4.tar.gz f*.txt
    3. 使用通配符时,文件名加引号
    • -X, --exclude-from=FILE 排除 FILE 中列出的模式串
    1. [root@server ~]# vim exclude.txt---写入文件f1.f2.f3.f4.txt
    2. f1.txt
    3. f2.txt
    4. f3.txt
    5. f4.txt
    6. [root@server ~]# tar -X exclude.txt -cJvf f3.tar.xz f*.txt---归档时排除文件exclude.txt中写入的文件
    7. f5.txt
    8. f6.txt
  • 相关阅读:
    【蓝桥杯】第十四届模拟赛第一期及第二期填空汇总
    y84.第四章 Prometheus大厂监控体系及实战 -- prometheus告警机制进阶(十五)
    RocketMQ笔记-进行中
    ARM 相关概念1
    《现代命令行工具指南》11. 帮助手册:只给你最有用的帮助信息 - tldr
    vscode配置vim
    设计模式学习(十九):访问者模式
    超全的Python完全版电子书——从基础到爬虫、分析等高级应用,限时下载
    【web前端期末大作业】HTML+CSS宠物狗静态网页设计
    另一个博客
  • 原文地址:https://blog.csdn.net/weixin_62443409/article/details/127981066