压缩打包,方便文件传输。
Linux常见压缩文件格式:.tar.gz、.zip、.gz、.bz2、.xz、.tar.bz2、.tar.xz
一、文件压缩工具
1、gzip压缩工具
gzip [-d#] 文件名,压缩后会删除原文件,不支持压缩目录
-d :解压
#:压缩等级,1-9,1最差,9为最好,默认为6
解压:gzip -d 文件包
gunzip 文件包
zcat:可以查看gzip压缩后的内容
gzip压缩,压缩完之后会删除原文件:
[root@node5 test]# echo ahahaha > haha.txt
[root@node5 test]# ls
haha.txt
[root@node5 test]# gzip -9 haha.txt
[root@node5 test]# ls
haha.txt.gz
[root@node5 test]#
gunzip解压,解压后会删除原文件:
[root@node5 test]# gunzip haha.txt.gz
[root@node5 test]# ls
haha.txt
[root@node5 test]#
2、bzip2压缩工具
bzip2不支持压缩目录,压缩级别1-9,默认是9,压缩是-z可以省略。
bzip2 [选项]文件名
选项:
-d:解压
-k:解压,但不会删除原文件
-z:压缩
bzcat:查看压缩文件内容
安装bzip2工具:
[root@node5 ~]# yum install bzip2 -y
例如:使用-k选择压缩,不会删除原文件
[root@node5 ~]# bzip2 -k auto_install_lnmp_v2.0.sh
[root@node5 ~]# ls
anaconda-ks.cfg mariadb-10.3.6-linux-glibc_214-x86_64.tar.gz
auto_install_lnmp_v2.0.sh nginx-1.14.0
auto_install_lnmp_v2.0.sh.bz2 nginx-1.14.0.tar.gz
libmcrypt-2.5.8 php-7.2.5
libmcrypt-2.5.8.tar.gz php-7.2.5.tar.gz
bzip2不能压缩目录:
[root@node5 ~]# bzip2 -k nginx-1.14.0
bzip2: Input file nginx-1.14.0 is a directory.
[root@node5 ~]#
bzcat:查看压缩文件的内容:
[root@node5 ~]# bzcat auto_install_lnmp_v2.0.sh.bz2
#!/bin/bash
#2018年3月23日
#auto install lnmp
#by author caomuzhong
#Blog:www.logmm.com
#功能选择菜单
menu(){
echo
echo -e "\033[31;32m LNMP编译安装脚本 V2.0 \033[0m"
echo -e "\033[31;32m=============================================================================\033[0m"
echo -e "\033[34m此脚本能直接在rhel 7.0、7.3 Centos 6.5 6.8上成功执行\033[0m"
echo " 安装包版本: nginx:1.12.2 mariadb5.5.57 php5.6.33"
echo " 所安装包组:Development Tools "
echo " 相关依赖包:pcre-devel、gd-devel、openssl、openssl-devel、php-mysql、wget "
echo " perl-devel、libxml2-devel bzip2-devel libcurl-devel "
echo -e "\033[47;34m-----安装需联网,请确保网络正常,若安装包下载地址失效,请自行更新下载地址-----\033[0m"
3、xz压缩工具
xz不可用压缩目录。
xz [-dzk] 文件名
-d:解压 -z:压缩,压缩时可以省略-z选项。
-k:解压,但不会删除源文件
xz使用-k选项,压缩后不会删除原文件
[root@node5 test]# xz -k haha.txt
[root@node5 test]# ls
haha.txt haha.txt.xz
[root@node5 test]#
xz不可以压缩目录:
[root@node5 test]# ls
haha haha.txt haha.txt.xz
[root@node5 test]# xz haha
xz: haha: Is a directory, skipping
[root@node5 test]#
4、zip压缩工具
zip:可以压缩文件,也可以压缩目录(加-r选项),不会删除源文件
unzip:解压
可以通过yum安装此工具:yum install zip unzip -y
[root@node5 test]# ls haha/
1.txt
[root@node5 test]# zip haha.zip haha/
adding: haha/ (stored 0%)
[root@node5 test]# ls
haha haha.txt haha.txt.xz haha.zip
[root@node5 test]#
解压:
[root@node5 test]# rm -rf haha/
[root@node5 test]# ls
haha.txt haha.txt.xz haha.zip
[root@node5 test]# unzip haha.zip
Archive: haha.zip
creating: haha/
[root@node5 test]# ls
haha haha.txt haha.txt.xz haha.zip
二、文件打包工具
tar:归档打包工具,打包不压缩。但,可以调用gzip、bzip2、xz来解、压缩。
tar [选项] 目标文件 源文件|目录
选项:
-z:使用gzip压缩
-j:使用bzip2压缩
-J:使用xz压缩
-c:创建归档
-x:还原归档,展开
-f:后跟文件名,如:-czvf,-xzvf,f在最后。
-v:显示过程
-t:查看压缩包里面有哪些文件
-P:保留原文件的属性
-p:使用绝对路径来压缩
-C:解压时指定解压后的文件存放目录
--exclude 文件名:打包时忽略指定的文件
RHCSA真题:将/etc目录打包成压缩包后放置在/root/backup.tar.bz2。
分析:.tar.bz2,所以打包的时候使用bzip2工具压缩,那么使用-j选项。
[root@node5 ~]# tar -cjvf /root/backup.tar.bz2 /etc
将本机的文件传送到远程主机:
[root@node5 ~]# tar cvf - nginx-1.14.0 | ssh 192.168.10.201 "cd /root/; tar xvf -"
[root@node5 ~]# ssh 192.168.10.201
root@192.168.10.201's password:
Last login: Fri May 18 20:30:06 2018 from 192.168.10.1
[root@node1 ~]# ls
anaconda-ks.cfg nginx-1.14.0
[root@node1 ~]#
-:标准输出。
tar与find使用举例:
[root@node5 ~]# tar czf root.tar.gz $(find /usr/local/nginx/ -name *.conf)
tar: Removing leading `/' from member names
[root@node5 ~]# tar tf root.tar.gz
usr/local/nginx/conf/fastcgi.conf
usr/local/nginx/conf/nginx.conf
usr/local/nginx/conf.d/server.conf
[root@node5 ~]#