• Linux系统下文件的压缩与打包


    压缩和解压缩

    压缩数据或者解压数据:

    为什么要移出数据信息前面的 / 目录

    在这里插入图片描述

    -P          --absolute-paths  不要从文件名中去除 '/'
    
    • 1

    1 compress和uncompress

    格式

    compress Options [file ...]
    
    • 1

    常用选项

    • -d 解压缩,相当于uncompress
    • -c 结果输出至标准输出,不删除原文件
    • -v 显示详情
    • uncompress fifile.Z 解压缩
    • zcat fifile.Z 不显式解压缩的前提下查看文本文件内容

    范例:

    zcat file.Z >file
    
    • 1

    2 gzip和gunzip

    格式:

    gzip [OPTION]... FILE ...
    
    • 1

    常用选项:

    • -d 解压缩,相当于gunzip
    • -c 结果输出至标准输出,保留原文件不改变
    • -# 指定压缩比,#取值为1-9,值越大压缩比越大
    • gunzip fifile.gz 解压缩
    • zcat fifile.gz 不显式解压缩的前提下查看文本文件内容

    范例:

    gzip -c messages >messages.gz 
    gzip -c -d messages.gz > messages 
    zcat messages.gz > messages 
    cat messages | gzip > m.gz
    
    • 1
    • 2
    • 3
    • 4

    3. bzip2和bunzip2

    格式:

    bzip2 [OPTION]... FILE ...
    
    • 1

    常用选项

    • -k keep, 保留原文件
    • -d 解压缩
    • -c 结果输出至标准输出,保留原文件不改变
    • -# 1-9,压缩比,默认为9
    • bunzip2 fifile.bz2 解压缩
    • bzcat fifile.bz2 不显式解压缩的前提下查看文本文件内容

    4 xz和unxz

    格式

    xz [OPTION]... FILE ...
    
    • 1

    常用选项

    • -k keep, 保留原文件

    • -d 解压缩

    • -c 结果输出至标准输出,保留原文件不改变

    • -# 压缩比,取值1-9,默认为6

    unxz fifile.xz 解压缩
    
    xzcat fifile.xz 不显式解压缩的前提下查看文本文件内容
    
    • 1
    • 2
    • 3

    5 zip和unzip

    zip 可以实现打包目录并压缩

    范例:

    #打包并压缩 
    zip –r /backup/sysconfig.zip /etc/sysconfig/ 
    #默认解压缩至当前目录 
    unzip /backup/sysconfig.zip 
    #解压缩至指定目录 
    unzip /backup/sysconfig.zip -d /tmp 
    
    cat /var/log/messages | zip messages - 
    unzip -p message.gz > message		 #-p 表示管道
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    打包和解包

    1 tar

    tar 即 Tape ARchive,磁带归档,经常用于备份

    格式

    tar  [OPTION]...
    
    • 1

    (1) 创建归档,保留权限

    tar -cpvf /PATH/FILE.tar FILE... 
    
    • 1

    (2) 追加文件至归档: 注:不支持对压缩文件追加

    tar -rf /PATH/FILE.tar FILE... 
    
    • 1

    (3) 查看归档文件中的文件列表

    tar -t -f /PATH/FILE.tar 
    
    • 1

    (4) 展开归档

    tar xf /PATH/FILE.tar 
    tar xf /PATH/FILE.tar -C /PATH/
    
    • 1
    • 2

    (5) 结合压缩工具实现:归档并压缩

    • -z 相当于gzip压缩工具
    • -j 相当于bzip2压缩工具
    • -J 相当于xz压缩工具

    范例:

    [root@naWang day21]# tar zcvf 1.txt.tar.gz 1.txt 
    1.txt
    [root@naWang day21]# ll
    总用量 8
    -rw-r--r-- 1 root root  14 129 20:05 1.txt
    -rw-r--r-- 1 root root 121 129 20:05 1.txt.tar.gz
    [root@naWang day21]# tar jcvf 1.txt.tar.bz2 1.txt 
    1.txt
    [root@naWang day21]# ll
    总用量 12
    -rw-r--r-- 1 root root  14 129 20:05 1.txt
    -rw-r--r-- 1 root root 125 129 20:06 1.txt.tar.bz2
    -rw-r--r-- 1 root root 125 129 20:05 1.txt.tar.gz
    [root@naWang day21]# tar Jcvf 1.txt.tar.xz 1.txt 
    1.txt
    [root@naWang day21]# ll
    总用量 16
    -rw-r--r-- 1 root root  14 129 20:05 1.txt
    -rw-r--r-- 1 root root 125 129 20:06 1.txt.tar.bz2
    -rw-r--r-- 1 root root 125 129 20:05 1.txt.tar.gz
    -rw-r--r-- 1 root root 180 129 20:09 1.txt.tar.xz
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    –exclude 排除文件

    范例:

    tar zcvf /root/a.tgz --exclude=/app/host1 --exclude=/app/host2 /app
    
    • 1

    -T 选项指定输入文件

    -X 选项指定包含要排除的文件列表

    范例:

    tar zcvf mybackup.tar.gz -T /root/includefilelist -X /root/excludefilelist
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xtie5XBl-1669020044182)(E:\Typora软件\linux运维笔记\运维笔记图片库\018 tar打包解压.PNG)]

    2 split

    split 命令可以分割一个文件为多个文件

    范例:

    #分割大的 tar 文件为多份小文件 
    split -b Size –d tar-file-name 
    prefix-name split -b 1M mybackup.tgz mybackup-parts 
    
    #切换成的多个小分文件使用数字后缀 
    split -b 1M –d mybackup.tgz mybackup-parts
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    将多个切割的小文件合并成一个大文件

    cat mybackup-parts* > mybackup.tar.gz
    
    • 1

    3 cpio

    cpio 是历史悠久的打包和解包工具,不过目前也已较少使用

    cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结

    尾的文件

    格式:

    cpio [选项] > 文件名或者设备名 
    cpio [选项] < 文件名或者设备名
    
    • 1
    • 2

    常用选项

    • -o output模式,打包,将标准输入传入的文件名打包后发送到标准输出
    • -i input模式,解包,对标准输入传入的打包文件名解包到当前目录
    • -t 预览,查看标准输入传入的打包文件中包含的文件列表
    • -O fifilename 输出到指定的归档文件名
    • -A 向已存在的归档文件中追加文件
    • -I fifilename 对指定的归档文件名解压
    • -F fifilename 使用指定的文件名替代标准输入或输出
    • -d 解包生成目录,在cpio还原时,自动的建立目录
    • -v 显示打包过程中的文件名称

    范例:

    #将etc目录备份: 
    find ./etc -print | cpio -ov > bak.cpio 
    #将/data内容追加bak.cpio 
    find /data | cpio -oA -F bak.cpio 
    #内容预览 
    cpio –tv < etc.cpio 
    #解包文件 
    cpio –idv < etc.cpio
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    追加压缩数据

    一个压缩包生成之后,如何向这个压缩包中追加新的压缩数据

    批量压缩

    如何实现批量压缩不同的数据信息

    eg:将/etc目录中以h开头的文件,进行压缩保存

    find /etc/ -maxdepth 1 -type f -name "h*" |xargs tar -zcvf /backup/etc.tar.gz
    
    • 1
  • 相关阅读:
    CSS Form表单布局
    一个很少见但很有用的SQL功能
    Java学习 --- lambda表达式
    华为的流程体系
    socket.error: [Errno 10049]错误
    从String中提取基本类型或包装类数据
    perl下map和grep的用法
    【前端开发】CSS BEM命名规范
    ClickHouse在大数据领域应用实践
    React封装自定义表单校验方法
  • 原文地址:https://blog.csdn.net/weixin_51313763/article/details/127967872