文件压缩与打包

压缩打包,方便文件传输。

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 ~]# 

 

转载于:https://my.oschina.net/logmm/blog/1810591

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值