压缩和解压缩
zip和unzip命令
zip: 可以压缩文件和目录。
语法: zip FILE
语法: unzip FILE
素材准备:
[root@localhost ~]# mkdir /test
[root@localhost ~]# cd /test
[root@localhost test]# for i in {1..5};do echo "test$i" > test$i.txt;done
[root@localhost test]# ls
test1.txt test2.txt test3.txt test4.txt test5.txt
[root@localhost test]# mkdir dir1
[root@localhost test]# cp /etc/fstab dir1/
实例1: 使用zip压缩文件test1.txt
[root@localhost test]# zip test1.zip test1.txt
adding: test1.txt (stored 0%)
[root@localhost test]# ls test1*
test1.txt test1.zip
压缩率为最高压缩test2.txt
[root@localhost test]# zip -9 test2.zip test2.txt
adding: test2.txt (stored 0%)
[root@localhost test]# ls test2*
test2.txt test2.zip
实例2: 将当前目录dir1连同目录下文件一起压缩
[root@localhost test]# zip -r dir1.zip dir1/
adding: dir1/ (stored 0%)
adding: dir1/fstab (deflated 44%)
[root@localhost test]# ls dir1*
dir1.zip
dir1:
fstab
实例3: 向压缩文件中test1.zip中添加test2. txt文件
[root@localhost test]# zip -m test1.zip test2.txt
adding: test2.txt (stored 0%)
实例4: 删除压缩文件中的文件
[root@localhost test]# zip -d test1.zip test2.txt
实例5: 压缩文件时排除某个文件
[root@localhost test]# zip test.zip *.txt -x test1.txt
adding: test3.txt (stored 0%)
adding: test4.txt (stored 0%)
adding: test5.txt (stored 0%)
实例6: 解压文件test2.zip
[root@localhost test]# unzip test2.zip
Archive: test2.zip
extracting: test2.txt
实例7:将压缩文件text.zip在指定目录dir1下解压缩
[root@localhost test]# unzip test.zip -d dir1
Archive: test.zip
extracting: dir1/test3.txt
extracting: dir1/test4.txt
extracting: dir1/test5.txt
实例8: 查看压缩文件目录,但不解压
[root@localhost test]# unzip -v test.zip
Archive: test.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
6 Stored 6 0% 06-17-2017 17:53 4e6f5599 test3.txt
6 Stored 6 0% 06-17-2017 17:53 012ec35e test4.txt
6 Stored 6 0% 06-17-2017 17:53 1835f21f test5.txt
-------- ------- --- -------
18 18 0% 3 files
gzip和gunzip命令
gzip(gunzip=gzip -d)命令
实例1: 使用gzip压缩文件
[root@localhost test]# gzip test1.txt
[root@localhost test]# ls test1*
test1.txt.gz test1.zip
实例2: 使用gzip压缩目录下文件
[root@localhost test]# gzip -r dir1/
[root@localhost test]# ls dir1
fstab.gz test3.txt.gz test4.txt.gz test5.txt.gz
#注意: 以上压缩之后原始文件就没有了。
实例3: 压缩但保留原始文件
[root@localhost test]# gzip -c test2.txt > test2.txt.gz
[root@localhost test]# ls test2*
test2.txt test2.txt.gz test2.zip
注:查看压缩过的文本文件内容: zcat、zless 。 zcat 文件名.gz
bzip2、bunzip2命令
bzip2、bunzip2(=bzip2 -d)是更新的Linux压缩工具,比gzip有着更高的压缩率。
bzip2、bunzip2示例如下:
[root@localhost test]# bzip2 man.config //将man.config以bzip2压缩,此时man.config变成man.config.bz2
[root@localhost test]# bzip2 -9 -c man.config > man.config.bz2 //将man.config用最佳的压缩比压缩,并保留原本的档案
[root@localhost test]# bzip2 -d man.config.bz2 //将man.config.bz2解压缩,可用bunzip2取代bzip2 -d
[root@localhost test]#bunzip2 man.config.bz2 //将man.config.bz2解压缩
注:查看压缩过的文件内容: bzcat、bzless 。 bzcat 文件名.bz2
6.4.4 xz、unxz命令
实例1:压缩文件
[root@localhost test]# xz test1.txt
[root@localhost test]# ls test1.txt.xz
test1.txt.xz
实例2:压缩dir1目录下文件
[root@localhost test]# xz dir1/*
[root@localhost test]# ls dir1
fstab.xz test3.txt.xz test4.txt.xz test5.txt.xz
实例3:查看压缩文件内容
[root@localhost test]# xzcat test1.txt.xz
test1
实例4:解压缩(xz -d等价于unxz)
[root@localhost test]# unxz test1.txt.xz
实例5:解压缩目录dir1下文件
[root@localhost test]# xz -d dir1/*
[root@localhost test]# ls dir1
fstab test3.txt test4.txt test5.txt
注:查看压缩过的文件内容: xzcat、xzless 。 xzcat 文件名.xz
tar归档命令
格式: tar [选项] [args]……
选项:任选其一
选项 | 功能 |
---|---|
-c | 创建.tar格式的包文件 |
-x | 释放.tar格式的包文件 |
-t | 查看包中的文件列表 |
必选项: | |
选项 | 功能 |
– | – |
-f | 用于指定打包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名当与-x选项一起使用时,则释放该选项指定的tar包文件 |
辅助选项:
选项 | 功能 |
---|---|
-v | 表示在命令执行时显示详细的提示信息 |
-p | 打包时保留文件及目录的权限 |
z | 调用gzip程序,以gzip格式压缩或解压缩文件(.tar.gz) |
-j | 调用bzip2程序,以bzip2格式压缩或解压缩文件(.tar.bz2) |
-J | 使用xz压缩或解压缩文件(.tar.xz),xz的压缩率通常比bzip2更高 |
-C | (大写字母C) 和-x选项一起使用,表示释放包时指定释放的目标路径 |
额外的选项:
#打包时排除某个文件
tar cf 文件名.tar --exclude=路径/文件 路径
注:此处的路径前后需要保持保持一致,统一使用绝对路径或者相对路径
- 创建(非压缩的)打包文件,将指定的一个或多个文件或目录备份生成为一个指定的包文件
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名列表……
- 列出包文件中的文件列表
tar t[v]f 包文件名`
- 创建带压缩的包文件,为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不
同的压缩方式
tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名……
tar cjf/-cjf 文件名.tar.bz2 要打包压缩的目录或文件名……
tar cJf/-cJf 文件名.tar.xz 要打包压缩的目录或文件名……
- 提取包文件到指定目录
tar xf/-xf/-xzf 文件名.tar.gz [-C 目标路径]
tar xf/-xf/-xjf 文件名.tar.bz2 [-C 目标路径]
tar xf/-xf/-xJf 文件名.tar.xz [-C 目标路径]