压缩和解压缩

一、生成测试文件

1、生成测试文件命令dd
基本用法
dd if=<输入源> of=<输出目标> bs=<块大小> count=<块数量> [status=progress] #[status=progress]可以查看进度显示

示例:

dd if=/dev/zero of=/tmp/testfile bs=1M count=100

# 参数说明if=/dev/zero # 输入源(Linux零设备) if = input fileof=/tmp/testfile # 输出文件路径 of = output filebs=1M # 块大小(1MB)count=100 # 块数量
设备文件输出内容典型用途
/dev/zero无限连续的0x00字节创建空白文件,初始化存储空间
/dev/null黑洞设备(丢弃所有写入)屏蔽程序输出
2、查看文件
file 文件名 #可以查看文件类型 会告诉你是什么文件 还是目录
[root@farrah 桌面]# file test
test: ASCII text

[root@xnha tmp]# hexdump testfile # 使用十六进制的方法查看文件
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
6400000

#出现类型为data时表示file文件命令无法识别该文件的具体格式。

二、压缩和解压缩

1、压缩命令gzip

gzip是Linux中用于文件压缩的常用工具,压缩以后会生成.gz后缀文件,原文件默认删除。

[!NOTE]

注意:gzip仅仅用来压缩文件 要想压缩目录需要使用tar命令打包成一个文件后再对文件进行压缩

命令格式
gzip [选项] 文件名
选项说明
参数说明
-k保留原文件
-d解压文件
-1 ~ -9压缩级别:1最快压缩率最低,-9最慢压缩率最高(默认-6)
-v显示压缩率等详细信息
-c输出到标准输出(不修改文件)
-t测试压缩文件的完整性
-r递归处理目录
-l查看压缩文件信息(压缩前后大小,压缩率)
使用方法
  • 基础压缩

删除原文件的压缩

[root@farrah 桌面]# cd /tmp 
[root@farrah tmp]# touch testfile #先新建一个testfile文件测试
[root@farrah tmp]# gzip testfile #压缩testfile文件并删除原文件
[root@farrah tmp]# ll  #找到该文件,可看见如下信息
-rw-r--r--. 1 root root   29 84 10:14 testfile.gz

不删除原文件的压缩

[root@farrah tmp]# gzip -k testfile #-k的作用为不删除原文件进行压缩
[root@farrah tmp]# ll /tmp |grep testfile 筛选出testfile查看文件
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   29 84 10:17 testfile.gz
2.解压命令gunzip
命令格式
gunzip [选项] 文件名.gz #与gzip -d 可同等替换
#选项说明与压缩命令gzip基本一致
使用方法
  • 解压操作

不保留原压缩文件的解压

[root@farrah tmp]# gunzip testfile.gz #解压不保留原解压文件
[root@farrah tmp]# ll /tmp | grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile

保留原压缩文件的解压

[root@farrah tmp]# gunzip -k testfile.gz  #gunzip同样使用-k即可保留原文件
[root@farrah tmp]# ll /tmp |  grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   29 84 10:17 testfile.gz

#使用gzip也同样可以实现解压操作 选项为:-d 
[root@farrah tmp]# gzip -d -k testfile.gz
[root@farrah tmp]# ll /tmp |  grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   29 84 10:17 testfile.gz
3.gzip查看压缩内容
zcat file.gz #用来查看压缩的文件内容
gzip -l backup.gz #显示压缩率  
4.压缩命令bzip2

bzip2 是 Linux 中基于 Burrows-Wheeler 变换 的高效压缩工具,相比 gzip 压缩率更高,但速度较

慢。压缩后生成 .bz2 后缀文件,默认删除原始文件

命令格式
bzip2 [选项] 文件名 # 压缩文件
选项说明
参数说明
-k保留原文件
-d解压文件
-1 ~ -9压缩级别:1最快压缩率最低,-9最慢压缩率最高(默认-6)
-v显示压缩率等详细信息
-c输出到标准输出(不修改文件)
-t测试压缩文件的完整性
-f强制覆盖已存在的输出文件
-s降低内存占用(牺牲速度)
-z显式指定压缩模式(默认行为)
使用方法
  • 压缩文件
#不保留原文件进行压缩
[root@farrah tmp]# bzip2 testfile
[root@farrah tmp]# ll /tmp |grep testfile
-rw-r--r--. 1 root root   14 84 10:17 testfile.bz2
#保留原文件进行压缩
[root@farrah tmp]# bzip2 -k testfile
[root@farrah tmp]# ll /tmp |grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   14 84 10:17 testfile.bz2
5.解压命令bunzip2
命令格式
bunzip2 [选项] 文件名.bz2 # 解压(等价于 bzip2 -d)
#选项说明与压缩命令gzip基本一致
使用方法

不保留原文件进行解压

[root@farrah tmp]# bunzip2 testfile.bz2 
[root@farrah tmp]# ll /tmp |grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile

保留原文件进行解压

#使用bunzip2命令解压
[root@farrah tmp]# bunzip2 -k testfile.bz2 
[root@farrah tmp]# ll /tmp | grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   14 84 10:17 testfile.bz2

#使用bzip2命令解压
[root@farrah tmp]# bzip2 -kd testfile.bz2 
[root@farrah tmp]# ll /tmp | grep testfile
-rw-r--r--. 1 root root    0 84 10:17 testfile
-rw-r--r--. 1 root root   14 84 10:17 testfile.bz2
6.bzip2查看压缩内容
bzcat file.bz2 # 不解压查看内容
bzip2 -l archive.bz2 # 显示压缩信息:
# Compression ratio: 4.20:1
# compressed size: 102400 bytes
# uncompressed size: 430080 bytes

三、打包文件

1、打包命令tar

tar (Tape Archive)是 Linux 系统中用于 打包文件目录 的归档工具,支持保留文件权限、时间戳和

目录结构(不对文件/目录本身造成任何影响,产生新文件)。常与压缩工具( gzip 、 bzip2 、 xz )

结合使用,形成 .tar.gz 、 .tar.bz2 、 .tar.xz 等压缩包

命令格式
tar [主选项] [辅助选项]  文件名或目录 #主选项必写,辅助选项可选
选项说明
  • 必选参数
参数说明
-c(create)创建新归档文件
-x (extracct)解压归档文件
-t (list查看归档内容列表
-r追加文件到已有归档(要先解压在重新打包)
  • 辅助选项参数
参数说明
-f指定归档名(必须放在最后)
-v显示操作详情
-z使用gzip压缩(生成.tar.gz)
-j使用bzip2压缩(生成tar.bz2)
-J使用xz压缩(生成.tar.xz)
-C解压到指定目录
–exclude排除指定文件/目录
–wildcards使用通配符文件
使用方法

打包压缩

#打包并压缩test文件 -cvf 打包归档、 gzip压缩 分步操作
[root@farrah tmp]# tar -cvf test1.tar test
test/
test/dir1/
test/dir1/file1.txt
test/dir1/file2.txt
test/dir1/newfile.txt
test/dir2/
test/dir2/subdir/
test/dir2/subdir/dir1/
test/dir2/subdir/dir1/file1.txt
test/dir2/subdir/dir1/file2.txt
[root@farrah tmp]# gzip test1.tar 

#一步操作 -czvf -z:可以直接压缩打包后的文件
[root@farrah tmp]# tar -czvf test1.tar.gz test
test/
test/dir1/
test/dir1/file1.txt
test/dir1/file2.txt
test/dir1/newfile.txt
test/dir2/
test/dir2/subdir/
test/dir2/subdir/dir1/
test/dir2/subdir/dir1/file1.txt
test/dir2/subdir/dir1/file2.txt

解压

1.解压.tar文件

[root@farrah tmp]# tar -xf testfile.tar
[root@farrah tmp]# ll /tmp | grep testfile
-rw-r--r--. 1 root root     0 84 10:17 testfile
-rw-r--r--. 1 root root    14 84 10:17 testfile.bz2
-rw-r--r--. 1 root root 10240 84 12:26 testfile.tar

2.解压.tar.gz到指定目录

#-zxf -x:解压文件 -z:使用gzip解压 
[root@farrah tmp]# tar -cvzf testfile.tar.gz testfile
testfile/
testfile/dir1/
testfile/file
[root@farrah tmp]# tar -zxf testfile.tar.gz -C /tmp/test/
[root@farrah tmp]# ls /tmp/test
testfile

3.查看归档内容

#-t 查看归档内容

#列出 .tar 文件内容
[root@xnha ~]# gunzip test321.tar.gz
[root@xnha ~]# tar -tf test321.tar

#列出.tar.gz中的文件
[root@farrah tmp]# tar -tf testfile.tar.gz
testfile/
testfile/dir1/
testfile/file[root@farrah tmp]# tar -tf testfile.tar.gz
testfile/
testfile/dir1/
testfile/file

#搜索归档类文件
[root@farrah tmp]# tar -ztf testfile.tar.gz | grep test
testfile/
testfile/dir1/
testfile/file

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值