Linux压缩及归档_2019.04.08_2019.04.09_22:00-23:30_mage_linux_log

本文深入探讨了Linux系统中常见的压缩归档格式及其工具,包括gzip、bzip2、xz和zip等,详细介绍了每种工具的特点、使用方法及压缩算法。同时,文章还讲解了如何使用tar、cpio等工具进行归档操作,以及如何通过各种命令参数实现文件的压缩、解压和查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

压缩格式

linux常用压缩格式:
gz,bz2,xz,zip,.Z
压缩算法:压缩算法不同,压缩比也不同
目前比较流行的三种压缩方式:
xz,bz2,gz
压缩工具及压缩后的后缀:

gzip:.gz
bzip2:.bz2
xz:.xz

不能压缩目录,只对文件逐个压缩,默认压缩后删除原文件。

gzip

gzip:.gz
gzip /PATH/TO/SOMEFILE    #压缩完后会删除原文件
	-d :解压缩(gunzip)
	-# :1-9,指定压缩比,默认为6
gunzip:解压缩
gunzip /PATH/TO/SOMEFILE.gz  #解压缩后删除原文件

zcat 查看压缩文件,本身不解压缩

zcat /PATH/TO/SOMEFILE.gz

bzip2

bzip2比gzip有着更大压缩比,压缩后文件更小
bgzip2 /PATH/TO/SOMEFILE    #压缩完后会删除原文件
	-d :解压缩(bunzip)
	-# :1-9,指定压缩比,默认为6
	-k:压缩后保留原文件
bunzip2 /PATH/TO/SOMEFILE.bz2 

bzcat 直接查看.bz2文件

bzcat /PATH/TO/SOMEFILE.bz2 

xz

xz /PATH/TO/SOMEFILE    #压缩完后会删除原文件
	-d :解压缩(unxz)
	-# :1-9,指定压缩比,默认为6
unxz:解压缩
unxz /PATH/TO/SOMEFILE.xz #解压缩后删除原文件

xzcat 直接查看.bz2文件

xzcat /PATH/TO/SOMEFILE.xz

zip压缩工具即能归档又能压缩

压缩比不大,可以压缩目录,压缩后不删除源文件
众多系统默认支持的压缩格式
zip FILENAME.zip FILE1 FILE2 ... 
zip test.zip test/*     #将/test目录下所有文件都压缩打包为test.zip
archive:归档,并不意味着压缩,只不过zip即能归档又能压缩,压缩后不删除源文件
unzip FILENAME.zip    #解压缩

tar工具只归档不压缩

tar:归档工具    命令中:-可以省略
	-c:创建归档文件
	-f FILENAME.tar:指定要操作的归档文件,-f必须放在命令后面跟上归档后的文件名
eg:tar -cf tset.tar test*.txt   #把所有以test开头,.txt结尾的文件归档保存为test.tar
    -x :展开归档文件
eg:tar -xf test.tar
    --xattrs:归档时保留文件的扩展属性信息(facl)
    -tf FILENAME.tar :不展开归档查看归档所包含的文件,归档压缩后的文件也可以查看
    -zcf:即归档又压缩(-z调用gzip压缩) 
    -zxf:调用gzip解压缩并展开归档,此处-z选项可以省略
    -jcf:即归档又压缩(-j调用bzip2压缩) 
    -jxf:调用bzip2解压缩并展开归档,此处-j选项可以省略
    -Jcf:即归档又压缩(-J调用xz压缩) 
    -Jxf:调用xz解压缩并展开归档,此处-J选项可以省略

cpio命令

cpio命令也是一个归档工具,比tar更古老

read命令

read从命令行读取内容,bash内部命令
	-p "PROMPT" :给出提示
	-t # :给个输入延时时间

练习

写一个脚本,从键盘让用户输入几个文件,脚本能够将这些文件归档压缩成一个文件;

#!/bin/bash
#myarchive.sh
declare -i NOCOMP=9
read -p "Three files for archive:" FILE1 FILE2 FILE3
read -p "Destination:" DEST
read -p "Compress method[gzip|bzip2|xz]:" COMP

case $COMP in
gzip)
        tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
;;
bzip2)
        tar -jcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
;;
xz)
        tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
        xz ${DEST}.tar
;;
*)
        echo "Unknown compress method."
        exit $NOCOMP
;;
esac

运行结果:

[root@MiWiFi-R3A-srv ~]# ./scripts/myarchive.sh 
Three files for archive:ls.txt man.txt tar.txt
Destination:./test   
Compress method[gzip|bzip2|xz]:gzip
[root@MiWiFi-R3A-srv ~]# ls
anaconda-ks.cfg  ls.txt  ls.zip  man.txt  packages  scripts  tar.txt  test.tar.gz
[root@MiWiFi-R3A-srv ~]# tar -tf test.tar.gz 
ls.txt
man.txt
tar.txt
[root@MiWiFi-R3A-srv ~]# ls -lh
total 96K
-rw-------. 1 root root 1.4K Apr  4 07:46 anaconda-ks.cfg
-rw-r--r--. 1 root root 7.9K Apr  9 22:18 ls.txt
-rw-r--r--. 1 root root 3.2K Apr  9 22:21 ls.zip
-rw-r--r--. 1 root root  34K Apr  9 22:18 man.txt
drwxr-xr-x. 2 root root 4.0K Apr  9 21:20 packages
drwxr-xr-x. 2 root root   57 Apr  9 22:52 scripts
-rw-r--r--. 1 root root  17K Apr  9 22:53 tar.txt
-rw-r--r--. 1 root root  20K Apr  9 22:54 test.tar.gz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值