首页 > 系统相关 >Linux基础13 打包压缩 gzip, zip, tar

Linux基础13 打包压缩 gzip, zip, tar

时间:2023-01-12 18:33:39浏览次数:42  
标签:13 tar zip gz gzip root 打包

压缩打包
windows下我们接触最多的压缩文件就是.rar格式, 但Linux有自己所特有的压缩工具。
一般linux上的压缩包windows上可以使用
如果希望windows和Linux互相能使用的压缩工具, 建议.zip格式

压缩打包的优点:
1节省磁盘空间占用率
2节省网络传输带宽消耗
3网络传输更加快捷

格式         压缩工具
.zip         zip压缩工具
.gz          gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.bz2         bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
.tar.gz      先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2     先使用tar命令归档打包,然后使用bzip压缩

 

# 查看文件的压缩类型     file abc.ini.gz

1.gzip压缩工具

yum install -y gzip    # 安装

gzip打包会删除源文件
#压缩
[root@oldboyedu ~]# gzip file1 
#解压
[root@oldboyedu ~]# gzip -d file1.gz
#不需要解压,查看文件内容
[root@oldboyedu ~]# zcat file1.gz 
123
    
练习题:
把/etc目录 拷贝/root下,找到/root/etc/下面所有一级二级目录中的 普通文件,压缩
[root@oldboyedu ~]# find /root/etc/ -maxdepth 2 -type f|xargs  gzip
    
注意:
1.gzip 不可以压缩目录,只能压缩文件
[root@oldboyedu ~]# gzip /tmp
gzip: /tmp is a directory -- ignored
    
2.gzip压缩的文件不在当前目录下(在原路径下)
3.压缩会删除源文件
4.解压会删除压缩文件
    
gzip的案例:mysql备份的时候
mysqldump -A |gzip > /tmp/mysql_$(date +%F).sql.gz

 

2.zip压缩工具

yum install -y zip unzip  # 安装

-r:递归压缩
    
#压缩
[root@oldboyedu ~]# zip zls.zip file1
#解压
[root@oldboyedu ~]# unzip zls.zip
Archive:  zls.zip
replace file1? [y]es,      [n]o,     [A]ll,     [N]one,     [r]ename:
                替换        不替换      替换所有    啥也不做     改名
# 如果压缩的是一个文件,可以通过zcat查看压缩文件的内容, 如果压缩的是文件夹, linux下无法查看里面内容
#压缩目录 (压缩文件-r参数必须加上, 否则压缩的是一个空目录)
[root@oldboyedu tmp]# zip -r tmp_dir2.zip /tmp/
          
注意:
1.压缩不会删除源文件
2.解压不会删除压缩文件
3.解压开会覆盖源文件内容
    
练习题:
查找到etc下所有1,2,3目录,包括目录下的文件,zip打包名字叫:yourname_etc.zip

 

3.tar压缩工具

#语法:tar [-zjxcvfP] filename         # tar的选项不用加-,加-显得不专业
    c   //创建新的归档文件   归档(本身并没有压缩的功能)
    x   //对归档文件解包      解压
    t   //列出归档文件里的文件列表
    v   //输出命令的归档或解包的过程
    f   //指定包文件名,多参数f写最后
    C   //指定解压目录位置
    z   //使用gzip压缩归档后的文件(.tar.gz)    # 先gzip压缩,后tar归档打包
    j   //使用bzip2压缩归档后的文件(.tar.bz2)
    J   //使用xz压缩归档后的文件(tar.xz)
    X   //排除多个文件(写入需要排除的文件名称)
    h   //打包软链接
    P   //连带绝对路径打包
    --hard-dereference  //打包硬链接
    --exclude   //在打包的时候写入需要排除文件或目录
    
#打包压缩(一般正常打包zcf即可)
[root@oldboyedu ~]# tar zcf zls2.tar.gz     /etc
                            归档文件        包文件名

#查看打包内容
[root@oldboyedu ~]# tar tf zls1.tar.gz
    
#解压
[root@oldboyedu ~]# tar xf zls1.tar.gz    # 参数z不用加,自动选择解压格式。加了只能解压gzip压缩的
    
    
注意:
1.不要使用绝对路径(centos6中如果打包路径是绝对路径,解压直接覆盖。centos7中打包时会把绝对路径地址开头/删掉,变相对路径,起保护作用)
如果非要打包绝对路径:[root@oldboyedu ~]# tar zcfP b.sh.tar.gz /usr/local/nginx/a.sh
解压的时候:[root@oldboyedu ~]# tar xfP b.sh.tar.gz
2.tar 打包可以接多个文件f
[root@oldboyedu ~]# tar zcf abc1.tar.gz 1.txt 2.txt 3.txt 
    
    
    格式                  压缩工具
    .zip                   zip压缩工具
    zip -r dir.zip dirname    目录
    zip  file.zip filename    文件
    
    .gz                      gzip压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    gzip filename
    
    .bz2                  bzip2压缩工具,只能压缩文件,会删除源文件(通常配合tar使用)
    
    .tar.gz                先使用tar命令归档打包,然后使用gzip压缩
    tar zcf dirname.tar.gz  dirname
    
    .tar.bz2              先使用tar命令归档打包,然后使用bzip压缩
    tar cjf dirname.tar.bz2  dirname
    
    .tar.xz
    tar cJf dirname.tar.xz  dirname
    
    //常用打包与压缩组合
    czf     //打包tar.gz格式
    cjf     //打包tar.bz格式
    cJf     //打包tar.xz格式

    xf      //自动选择解压模式
    tf      //查看压缩包内容
    
#不想打包 的文件
[root@oldboyedu /]# tar zcf etc3.tar.gz --exclude=Makefile etc    # 排除Makefile文件
[root@oldboyedu /]# tar zcf etc3.tar.gz --exclude={Makefile,Makefile1,Makefile2} etc    # 排除多个文件
    
# 排除a.txt上多个文件(写入需要排除的文件名称)
[root@oldboyedu /]# cat a.txt 
etc/latrace.d/headers/
etc/latrace.d/headers/ctype.h
etc/latrace.d/headers/dirent.h
etc/latrace.d/headers/dlfcn.h
etc/latrace.d/headers/fcntl.h
etc/latrace.d/headers/getopt.h
etc/latrace.d/headers/inet.h
etc/latrace.d/headers/ioctl.h
etc/latrace.d/headers/latrace.h
etc/latrace.d/headers/libintl.h

[root@oldboyedu /]# tar zcfX etc4.tar.gz a.txt etc

#指定解压路径
[root@oldboyedu ~]# tar xf abc1.tar.gz -C /opt/

 

标签:13,tar,zip,gz,gzip,root,打包
From: https://www.cnblogs.com/ludingchao/p/17047635.html

相关文章

  • Target 塔吉特的4种商品编码
    Target塔吉特共有4种商品编码:TCIN、DPCI、UPC、SKU,其中DPCI、UPC和TCIN在Target系统中是唯一的ID。在target.com中查看商品时,在任一个商品中下拉进入到商品详情页(Item/Detai......
  • codechef Starters73
    https://www.codechef.com/START73A?order=desc&sortBy=successful_submissionsHamiltonianTree手玩一下走哈密顿路的过程,一定是,走一条树上路径,然后走过新加的边,再到另......
  • LeetCode刷题(13)~移动零
    题目描述给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷......
  • [LeetCode] 1326. Minimum Number of Taps to Open to Water a Garden 灌溉花园的最少
    Thereisaone-dimensionalgardenonthex-axis.Thegardenstartsatthepoint 0 andendsatthepoint n.(i.eThelengthofthegardenis n).Thereare......
  • Taro css
    小红点&::before{content:"";display:block;width:12px;height:12px;back......
  • macOS 13 login items notifications close bug All In One
    macOS13loginitemsnotificationsclosebugAllInOne关闭后,不生效bugs太多次的重复通知出现,遮挡屏幕,影响正常使用无法批量一键清除通知,要一个一个的滑动......
  • 解决 413 Request Entity Too Large(请求实体太大)
    一、错误展示二、问题解决(nginx上传配置)Nginx默认最大能够上传1MB文件,大于1MB的文件自然无法上传,打开nginx.conf(没权限找运维人员)在http{}中设置:client_max_body_size50......
  • Centos 6.x 更新内核 2.6->4.13
    最近搭建SS感觉上网很慢,想起了网络加速,锐速没找到,知道到了Google开源的TCPBBR拥塞控制算法,效果非常不错。本帖记录升级内核的过程。下载 更新内核rpm--importhttps:......
  • 全志T113芯片蓝牙音乐播放失败如何解决?
    1.主题T113-S3蓝牙音乐播放失败问题2.问题背景硬件:T113+XR829软件:Linux(非Tina)3.问题描述3.1复现步骤#驱动路径要根据固件实际路径insmod/lib/modules/5.4.61±a......
  • dremio FragmentStarter 简单说明
    FragmentStarter主要进行FragmentExecutor的启动管理Fragment执行简单说明dremio对于Fragment的执行与apachedrill是一致的,会包含root,中间,以及leaf,同时Fragment会......