Linux的文件归档与压缩
两者定义
将一个文件或目录的整合存储在一个文件中,但并未压缩,它占用的空间是其中所有文件和目录的总和
通过算法将文件进行处理,达到保留最大文件信息,而让文件体积变小的目的
基本原理就是通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示,压缩又分无损压缩和有损压缩,无损压缩,压缩数据必须准确无误,有损压缩指的是即便丢失个别的数据linux压缩,对文件也不会造成太大的影响
tar命令
此命令指定选项时可以不在选项前面输入“ - ”
tar [option] filename/dirname
-c 将多个文件或目录进行打包
-A 追加 tar 文件到归档文件
-f 指定包的文件名,且文件后缀必须为.tar
-v 显示打包文件过程
-C 指定解包位置
示例
$tar -cvf 1.tar ngs_pdf
ngs_pdf/
$l
total 10K
drwxr-xr-x 2 report users 4.0K Aug 31 14:08 ngs_pdf
-rw-r--r-- 1 report users 10K Aug 31 16:53 1.tar
tar [option] tarfilename
-x 对 tar 包做解打包操作
-f 指定要解压的 tar 包的包名
-t 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作
-C 指定解包位置
-v 显示打包文件过程
示例
# 查看包中的目录与文件
$tar -tf 1.tar
ngs_pdf/
# 解包
$tar -xvf 1.tar
ngs_pdf/
# 解包到./tmp目录下
$tar -xvf 1.tar -C ./tmp
ngs_pdf/
tar [option] filename/dirname
-z 压缩和解压缩 ".tar.gz" 格式
-j 压缩和解压缩 ".tar.bz2"格式
示例

$tar -zvcf 1.tar.gz ngs_pdf
ngs_pdf/
$l
total 4K
drwxr-xr-x 2 report users 4.0K Aug 31 14:08 ngs_pdf
-rw-r--r-- 1 report users 117 Aug 31 17:08 1.tar.gz
$tar -jvcf 1.tar.bz2 ngs_pdf
ngs_pdf/
$l
total 4K
drwxr-xr-x 2 report users 4.0K Aug 31 14:08 ngs_pdf
-rw-r--r-- 1 report users 123 Aug 31 17:11 1.tar.bz2
zip命令
类似于 Windows 系统中的 winzip 压缩程序,压缩为.zip格式
zip [option] zipname filename/dirname
?
-r 递归压缩目录(包括所有子目录)
-m 压缩完成不保留原始文件
-v 显示详细的压缩过程信息
-q 压缩的时候不显示命令的执行过程
-d 从压缩文件中删除部分数据
-u 向压缩文件中添加数据
-x 排除部分不需要的文件
示例
# 压缩所有文件
$zip -r test.zip cff
?
# 删除test.zip文件中的11.txt文件
$zip -d test.zip 11.txt
?
unzip命令
查看和解压缩 zip 文件
unzip [option] zipname
?
-d 将压缩文件解压到指定目录下,要添加输出路径
-n 解压不覆盖已有文件
-o 强制解压覆盖已有文件,无需确认
-v 查看压缩包情况(不解压)
-t 测试压缩包是否损坏(不解压)
示例
# 解压文件
unzip test.zip
?
# 解压到./tmp目录下
unzip -d ./tmp test.zip
gzip 命令
gzip是最流行的压缩算法之一,可让您减小文件大小并保留原始文件模式、所有权和时间戳,只能操作文件
gnu.org/software/gzip/manual/gzip.html
gzip [option] file
?
-d,--decompress 对压缩文件进行解压缩
-r,--recursive 递归压缩指定目录下以及子目录下的所有文件
-v,--verbose 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比
-c,--stdout 将压缩数据输出到标准输出中,并保留源文件
-number
-1 ,--fast 表示压缩比最小的最快压缩速度
-9 ,--best 表示压缩比最大的最慢压缩速度
默认 -6
示例
# 压缩文件
$gzip 1.txt
?
# 详细输出
$gzip -v 1.txt
1.txt: 0.0% -- replaced with 1.txt.gz
?
# 压缩多个文件
gzip 1.txt 2.txt 3.txt
?
# 压缩目录中的所有文件
gzip -r cff
?
# 解压文件
gzip -d 1.txt.gz
?
# 解压目录下的所有文件
gzip -dr cff
bzip2 命令
bzip2命令用法与gzip相似,bzip2的算法更先进、压缩比更好,gzip相对来讲速度更快
bzip2 [option] file
?
-d,--decompress 对压缩文件进行解压缩
-v,--verbose 对于每个压缩和解压缩的文件,显示相应的文件名和压缩比
-c,--stdout 将压缩数据输出到标准输出中,并保留源文件
-number
-1 ,--fast 表示压缩比最小的最快压缩速度
-9 ,--best 表示压缩比最大的最慢压缩速度
默认 -6
示例
# 默认bzip2 不能操作文件夹,但是可以结合tar打包进行对文件夹操作
tar -cf total.tar 1.txt 2.txt 3.txt # 整合数据
bzip2 total.tar # 压缩文件
(编辑:成都站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|