linux | 打包压缩命令
Posted 皮卡丘的blue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux | 打包压缩命令相关的知识,希望对你有一定的参考价值。
文章目录
前言
环境准备:
linux操作系统
VMware Workstation16.x
Centos7
打包压缩
- 压缩
- 为什么要打压缩包?
- 备份的时候,能节约空间
- 网络传送的时候,能节约时间
- 打包压缩:
- 目的:备份,还原
打包压缩:
- 打包:很多文件放到一起成一个文件
- 压缩:减少占用磁盘空间的操作
大文件超过4G的,无法传输 => 大文件的切割工具:将大文件切割(split)成很多小文件,然后我们就可以上传了
- Windows里的.rar压缩文件传递到linux里,是否能打开?
- .zip : windows和linux都支持
- .rar文件在linux里默认是不支持的
=> - linux里的所有的压缩文件,windows里的都能打开
- windows里的压缩文件,在linux里不一定就可以打开
- 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
- 打包压缩一个文件或者文件夹
[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
- 文件和文件夹可以一起打包到一个压缩文件里
[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]#
- 排除多个文件或者文件夹
include 包含
exclude 排除
[root@master luoyawei]# tar --exclude=/boot/grub2,grub,efi -czf /lianxi/luoyawei/no_grub2_boot.tar.gz /boot
- 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
- 打包文件,里面嵌入当前的日期
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
小结:
- 如果文件名一样,后面打包的文件会覆盖原来的文件
- 可以指定压缩包存放路径(绝对路径)
- 使用绝对路径打压缩包
[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 | 打包压缩命令的主要内容,如果未能解决你的问题,请参考以下文章