一.什么是文件压缩
将多个文件或目录合并成为一个特殊的文件。
二.为什么要对文件进行压缩
1.压缩文件会减小文件的体积
2.加快资源的传输
3.节省网络的宽带
三.Windows的压缩包与Linux的压缩包可以互通
1.Windows的压缩包类型:rar zip 等等的其他类型
2.Linux的压缩包类型:zip tar.gz 等等的其他类型
PS:Linux不支持Windows下的rar格式的压缩文件。所以Windows和Linux互通通常选择zip格式。
四.Linux中常见压缩包类型
.zip zip压缩工具
.gz gzip压缩工具,只能压缩文件但是会删除原文件(通常会配合tar使用)
.bz2 bzip2压缩工具,只能压缩文件但是会删除原文件(通常会配合tar使用)
.tar.gz 先使用tar命令归档打包,然后使用gzip压缩
.tar.bz2 先使用tar命令归档打包,然后使用bzip压缩
五.工具使用
1.gzip使用方法(gzip打包压缩只对文件有效)
默认情况下没有gzip工具需要安装:
yum install gzip -y
gzip 文件名 (打包)
例:[root@localhost ~]# gzip zy10.txt
gzip -d 文件名.gz (解包)
例:[root@localhost ~]# gzip -d zy10.txt.gz
zcat 文件名.gz (查看包内文件的内容)
例:[root@localhost ~]# zcat zy10.txt.gz
让某个文件暂时失效和快速启用
gzip 文件名 (gzip * 打包当前目录所有文件)
gzip -d 文件名 (gzip -d * 解压当前目录所有文件)
zcat 文件名 (查看不想解压的压缩包)
2.zip unzip 使用方法
默认情况下没有zip和unzip工具需要安装:
yum install zip unzip -y
zip 压缩包名.zip 文件名 (压缩文件为压缩包)
例:[root@localhost ~]# zip zhangyao.zip zy10.txt
unzip -l 压缩包名.zip (查看包内文件)
例:[root@localhost ~]# unzip -l zhangyao.zip
(unzip -t zhangyao.zip 检测文件是否都OK)
zip -r 压缩包名.zip 目录名 (压缩目录)
例:[root@localhost ~]# zip -r tmp.zip /tmp/
zip -T 压缩包名.zip (查看压缩包是否完整)
unzip 压缩包名.zip (解压压缩包到当前目录)
例:[root@localhost ~]# unzip tmp.zip
unzip 压缩包名.zip -d 其他目录 (解压压缩包到其他目录)
例:[root@localhost ~]# unzip tmp.zip -d /home/
3.tar使用方法(tar是linux下最常用的压缩与解压的工具,支持文件和忽略的压缩) ------ du -sh (查看文件大小)
使用语法: tar -czf 文件名 要打包的文件名 (打包)
例:[root@localhost ~]# tar -czf root.tar.gz /root/
tar -czf 目录/ 文件名 要打包的文件名 (打包到指定的某个目录)
例:[root@localhost ~]# tar -czf /tmp/root.etc.atr.gz /etc/ /root/
c 创建新的归档文件
x 对归档文件解包
t 列出归档文件里文件列表
f 指定压缩包文件名,参数f写最后
z 使用gzip压缩归档后的文件(.tar.gz)
j 使用bzip2压缩归档后的文件(.tar.bz2)
J 使用xz压缩归档后的文件(.tar.xz)
C 指定解压目录位置
X 排除多个文件(写入需要排除的文件名称)
h 打包软连接
--exclude 在打包的时候写入需要排除的文件或目录
常用打包与压缩的组合
------------------------------------------------>>打包
czf 打包tar.gz格式
cjf 打包tar.bz2格式
cJf 打包tar.xz格式(使用较少)
czhf 打包tar.gz格式的软连接
------------------------------------------------>>解包
zxf 解压tar.gz格式
jxf 解压tar.bz格式
xf 自动选择解压模式
tf 查看压缩包内容
------------------------------------------------>>常用
czf 打包tar.gz格式
tf 查看压缩包内容
xf 自动选择解压模式
-C 解压到指定目录
例:(tar xf root.tar.gz -C /tmp/)
find和tar组合用法
1.[root@localhost ~]# find /root/ -type f | xargs tar -czf /tmp/root.txt.tar.gz
2. tar czf root.txt.tar.gz $(find /tmp/ -type f)
(root目录下的所有文件打包到tmp目录下)
4.--exclude=单个文件 (排除单个文件)
例:[root@localhost ~]# tar zcf root.tar.gz /root/ --exclude /root/zy11.txt
x排除多个文件
需要创建一个文件,将要排除的文件写入文件中。(pc.txt)
例:tar czXf pc.txt root.tar.gz /root/