linux | 打包压缩命令

Posted 皮卡丘的blue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux | 打包压缩命令相关的知识,希望对你有一定的参考价值。

文章目录


前言

环境准备:
linux操作系统
VMware Workstation16.x
Centos7


打包压缩

  1. 压缩
  • 为什么要打压缩包?
    • 备份的时候,能节约空间
    • 网络传送的时候,能节约时间
  1. 打包压缩:
  • 目的:备份,还原

打包压缩:

  • 打包:很多文件放到一起成一个文件
  • 压缩:减少占用磁盘空间的操作

大文件超过4G的,无法传输 => 大文件的切割工具:将大文件切割(split)成很多小文件,然后我们就可以上传了

  1. Windows里的.rar压缩文件传递到linux里,是否能打开?
  • .zip : windows和linux都支持
  • .rar文件在linux里默认是不支持的
    =>
  • linux里的所有的压缩文件,windows里的都能打开
  • windows里的压缩文件,在linux里不一定就可以打开
  1. linux和Windows之间文件上传与下载的解决方法:
    (1). xftp => 在Windows安装
    (2). moba => 在Windows安装
    (3). lrzsz => 在linux里安装,在Windows里安装了xshell但是没安装xftp,在xshell中使用lrzsz工具
    • lrzsz的速度没有xftp快
    • 下载与使用:yum install lrzsz
      rz:recieve => linux里接受从windows里上传的文件
      sz:send => 将linux里的playbook.sh文件传到windows里

curl命令在linux里的使用
curl => 理解为linux里的字符界面的浏览器 下载
curl => 是默认安装在centos7的系统里,默认下载文件寻访在当前目录下
-O => 下载到当前文件夹
-o /backup/nginx.tar.gz => 指定下载到/backup目录下叫nginx.tar.gz

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1048k  100 1048k    0     0   572k      0  0:00:01  0:00:01 --:--:--  572k
[root@master ~]# ls /backup
beijing  filepath.txt  hubei  nginx.tar.gz  yunnan
[root@master ~]# 
[root@master ~]# curl  -o /backup/nginx-1.21.6.tar.gz  http://nginx.org/download/nginx-1.21.6.tar.gz
将http://nginx.org/download/nginx-1.21.6.tar.gz  # 文件下载到本地的/backup目录下叫nginx-1.21.6.tar.gz

1. zip/unzip

zip只能对文件进行压缩,不能对文件夹进行压缩

  • zip的使用
    • 如:zip passewd.zip passwd
      • passwd.zip => 打包压缩文件名
      • passwd => 源文件名
  • unzip的使用
    unzip => 是解压的命令
[root@localhost backup]# unzip passwd.zip 
Archive:  passwd.zip
  inflating: passwd   

Archive 附件: 一个压缩包或者压缩文件就称为一个附件
存档文件,归档文件
其实就是将一个文件压缩或者很多文件放到一个文件里,把很多东西放到一起 => 这个过程就称呼归档,存档
deflated 泄气(压缩)
inflate: 解压

2. gzip/gunzip

.gz压缩文件

直接在原文件上进行压缩,添加后缀名.gz
[root@localhost backup]# gzip passwd

查看压缩文件里的内容
[root@localhost backup]# zcat passwd.gz

解压文件
[root@localhost backup]# gunzip passwd.gz

3. xz

  • xz 也是linux系统默认安装的压缩工具
    .xz压缩文件

压缩

[root@localhost backup]# xz passwd
[root@localhost backup]# ls
beijing  filepath.txt  guangdong  hunan  passwd.xz  passwd.zip  shenzhen

查看压缩文件里的内容
[root@localhost backup]# xzcat passwd.xz

解压文件并查看

[root@localhost backup]# unxz passwd.xz
[root@localhost backup]# ls
beijing  filepath.txt  guangdong  hunan  passwd  passwd.zip  shenzhen
[root@localhost backup]# 

xz与gzip的区别

空间占用

xz的压缩效果比gzip好,压缩后占用的空间比较少,压缩需要的时间长
gzip压缩速度快,但是效果一般

文件比较小,使用xz或者gzip都可以
如果文件比较大,建议使用xz压缩,可以节约更多磁盘空间

时间对比

4. bzip2

bzip2 也是linux里的压缩工具
.bz2压缩文件

解压:bunzip2

查看压缩文件的内容bzcat

前四个压缩工具总结

zip、gzip、xz、bzip2

  • 都是只能给一个文件打压缩包,不推荐给文件或者多个文件夹打压缩包

5. 打包命令——tar

用途:制作归档文件、释放归档文件
格式:tar [选项]… 归档文件名 源文件或目录
解压:tar [选项]… 归档文件名 [-C 目标目录]
使用tar命令打的压缩包叫tarball => 即tar包
=> 归档文件:将很多个文件或者文件夹打包到一个文件里,然后可以对归档文件进行压缩
.tar => 其实是归档,不进行压缩
.tar.gz => 先归档,然后调用gzip进行压缩 =>速度快
.tar.xz => 先归档,然后调用xz进行压缩 =>压缩效果好
.tar.bz2=> 先归档,然后调用bzip2进行压缩

常用命令选项

-c:创建 .tar 格式的包文件  create
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件  file
-t:列表查看包内的文件  list
-p:保持原文件的原来属性
-P:保持原文件的绝对路径
-z 调用gzip去压缩
-J 调用xz去压缩
-j 调用bzip2去压缩

打压缩包

tar -czf => .tar.gz
tar czf => .tar.gz
tar cJf => .tar.xz
tar cjf => .tar.bz2

  1. 打包压缩一个文件或者文件夹
[root@master luoyawei]# cp /boot  . -r
[root@master luoyawei]# ls
boot  passwd
# 将当前目录下的passwd文件打包成passwd.tar.gz压缩包
[root@master luoyawei]# tar  czf  passwd.tar.gz   passwd   
                                   压缩文件        源文件
[root@master luoyawei]# ls
boot  passwd  passwd.tar.gz
  1. 文件和文件夹可以一起打包到一个压缩文件里
[root@master luoyawei]# tar  czf   /lianxi/luoyawei/boot_passwd.tar.gz   /boot   /etc/passwd
tar: 从成员名中删除开头的“/”
[root@master luoyawei]# tar  czf   /lianxi/luoyawei/boot_passwd_log.tar.gz   /boot   /etc/passwd  /var/log
tar: 从成员名中删除开头的“/”
[root@master luoyawei]# 
  1. 排除多个文件或者文件夹
    include 包含
    exclude 排除
[root@master luoyawei]# tar --exclude=/boot/grub2,grub,efi  -czf /lianxi/luoyawei/no_grub2_boot.tar.gz  /boot
  1. linux 不看重后缀名,命名不小心错误,可以file一下可以看出是什么压缩包

[root@master luoyawei]# tar  czf  passwd.tar.xz  passwd 
[root@master luoyawei]# ls
boot  passwd  passwd.tar.gz  passwd.tar.xz
[root@master luoyawei]# file passwd.tar.gz
passwd.tar.gz: gzip compressed data, from Unix, last modified: Tue Apr 12 19:55:59 2022
[root@master luoyawei]# file passwd.tar.xz
passwd.tar.xz: gzip compressed data, from Unix, last modified: Tue Apr 12 19:57:08 2022
  1. 打包文件,里面嵌入当前的日期
    date 是linux里查看时间的命令
    格式化输出日期:

+%Y year 年
%m month 月
%d day 日
%H hour 小时
%M minute 分钟
%S seconde 秒
%F 效果跟%Y-%m-%d类似

[root@hunan-wangzhe-5 lianxi]# date +%Y%m%d
20211027
[root@hunan-wangzhe-5 lianxi]# date +%Y-%m-%d
2021-10-27
[root@localhost lianxi]# echo $(date +'%F %H:%M:%S')
2022-05-07 19:18:47

获得日期给变量,然后调用变量

[root@master luoyawei]# ctime=$(date +%Y%m%d)
[root@master luoyawei]# echo $ctime
20220412
[root@master luoyawei]# 
[root@master luoyawei]# tar  czf  boot-$ctime.tar.gz /boot 

小结:

  1. 如果文件名一样,后面打包的文件会覆盖原来的文件
  2. 可以指定压缩包存放路径(绝对路径)
  3. 使用绝对路径打压缩包
[root@localhost luoyawei]# mkdir /weihong
[root@localhost luoyawei]# pwd
/lianxi/luoyawei
[root@localhost luoyawei]# tar czf /weihong/passwd.tar.gz /etc/passwd
tar: 从成员名中删除开头的“/”
[root@localhost luoyawei]# ls /weihong
passwd.tar.gz

查看压缩包

tar tf

解压

tar xf

  • xf
    # Extract all files from archive.tar.
    Extract 提取,解压

可以指定压缩包解压路径,默认解压在当前文件夹

[root@master luoyawei]# tar xf /weihong/passwd.tar.gz 
[root@master luoyawei]# ls
boot  etc  hosts.tar.gz
[root@master luoyawei]# ls etc/
passwd
[root@master luoyawei]# tar tf /weihong/passwd.tar.gz 
etc/passwd

tar xf <压缩包名> -C <解压到的路径>

[root@master luoyawei]# ls /nongda_weihong/
[root@master luoyawei]# tar xf /weihong/passwd.tar.gz   -C /nongda_weihong/
[root@master luoyawei]# ls /nongda_weihong/
etc

总结

本文章主要介绍了linux里的打包压缩相关命令,前半部分介绍了四种主要的压缩工具zip,gzip,xzip,bzip2,后面部分介绍了tar命令的打包与解包使用。

以上是关于linux | 打包压缩命令的主要内容,如果未能解决你的问题,请参考以下文章

linux的tar命令详情;linux多个文件压缩打包到一个压缩文件

Linux基础 常用Linux命令

linux打包压缩工具详解

linux打包压缩解压缩命令大全

五.Linux压缩文件的操作命令(压缩解压)

linux | 打包压缩命令