Linux文件压缩和打包
gzip压缩工具
1.将etc下的所有conf文件查看后循环追加到1.txt文件中
[root@bogon gzip]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \; [root@bogon gzip]# ls 1.txt
2.用gzip进行压缩后
[root@bogon gzip]# ll -sh 1.txt 628K -rw-r--r-- 1 root root 628K 12月 26 09:18 1.txt [root@bogon gzip]# wc -l 1.txt 18297 1.txt [root@bogon gzip]# gzip 1.txt [root@bogon gzip]# ll -h 1.txt.gz -rw-r--r-- 1 root root 166K 12月 26 09:18 1.txt.gz [root@bogon gzip]#
3.gzip -d 或 gunzip 解压的文件名
[root@bogon gzip]# gzip -d 1.txt.gz [root@bogon gzip]# du -sh 1.txt 628K 1.txt [root@bogon gzip]#
4.gzip -(1-9) 指定压缩级别,用 -1 压缩后变为196k ,-9是压缩比最大的 默认是-6级别。
[root@bogon gzip]# du -sh 1.txt 628K 1.txt [root@bogon gzip]# gzip -1 1.txt [root@bogon gzip]# du -sh 1.txt.gz 196K 1.txt.gz [root@bogon gzip]#
5.用gzip -9 压缩一下试试,变成了168k
[root@bogon gzip]# gzip -9 1.txt [root@bogon gzip]# du -sh 1.txt.gz 168K 1.txt.gz [root@bogon gzip]#
6.file命令可以查看压缩文件信息
[root@bogon gzip]# file 1.txt.gz 1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Tue Dec 26 09:18:00 2017, max compression [root@bogon gzip]#
7.zcat 命令可以查看压缩文件内容
8.压缩文件指定到一个目录下,并且原文件不消失。
[root@bogon gzip]# gzip -c 1.txt > /tmp/1.txt.gz [root@bogon gzip]# ll 总用量 628 -rw-r--r-- 1 root root 642394 12月 26 09:18 1.txt [root@bogon gzip]# ls /tmp/1.txt.gz /tmp/1.txt.gz [root@bogon gzip]#
9.解压文件同样也可以指定目录
[root@bogon gzip]# gzip -d -c /tmp/1.txt.gz > /tmp/gzip/2.txt [root@bogon gzip]# ls 1.txt 2.txt [root@bogon gzip]#
10.查看文件大小和行数
[root@bogon gzip]# wc -l 1.txt 2.txt 18297 1.txt 18297 2.txt 36594 总用量 [root@bogon gzip]# du -sh 1.txt 2.txt 628K 1.txt 628K 2.txt [root@bogon gzip]#
11.gzip 不能压缩目录
bzip2压缩工具
1.bzip2比gzip压缩的更狠
[root@bogon bzip2]# bzip2 1.txt [root@bogon bzip2]# du -sh 1.txt.bz2 152K 1.txt.bz2 [root@bogon bzip2]#
2.解压使用bzip2 -d 或者 bunzip2 1.txt.bz2 ,不支持压缩目录,支持-c 指定压缩到某个目录
[root@bogon bzip2]# bzip2 -d 1.txt.bz2 [root@bogon bzip2]# ll 总用量 628 -rw-r--r-- 1 root root 642394 12月 26 15:19 1.txt [root@bogon bzip2]#
[root@bogon bzip2]# bzip2 -c 1.txt > /tmp/1.txt.bz2 [root@bogon bzip2]# du -sh /tmp/1.txt.bz2 152K /tmp/1.txt.bz2 [root@bogon bzip2]#
3.支持 -d -c 选项
[root@bogon bzip2]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt [root@bogon bzip2]# ls 1.txt 3.txt [root@bogon bzip2]#
4.bzip2也有压缩级别,默认的压缩级别就是9
5.bzcat 也是查看压缩文件内容的。
xz压缩工具
1.xz压缩工具压缩比比bzip2更狠不支持压缩目录
2.xz 文件名
[root@bogon xz]# xz 1.txt [root@bogon xz]# ls 1.txt.xz [root@bogon xz]# ll 总用量 144 -rw-r--r-- 1 root root 144124 12月 26 16:14 1.txt.xz [root@bogon xz]# du -sh 1.txt.xz 144K 1.txt.xz [root@bogon xz]#
3.用xz -d或unxz 解压缩
[root@bogon xz]# xz -d 1.txt.xz [root@bogon xz]# ls 1.txt [root@bogon xz]#
4.支持 -d -c
[root@bogon xz]# ls 1.txt [root@bogon xz]# xz -c 1.txt > /tmp/2.txt.xz [root@bogon xz]# xz -d -c /tmp/2.txt.xz > ./2.txt [root@bogon xz]# ll 总用量 1256 -rw-r--r-- 1 root root 642394 12月 26 16:14 1.txt -rw-r--r-- 1 root root 642394 12月 26 16:18 2.txt [root@bogon xz]#
5.可以用xzcat查看压缩包内容
zip压缩工具
1.cp -r 功能上是等价的。不加-r或者-R的时候,只拷贝文件,不拷贝文件夹;加上后则会拷贝文件夹——包括下一级的子文件夹,以及子文件夹中的子文件夹,余此类推。
2.zip压缩文件,保留文件不删除
[root@bogon zip]# zip 1.txt.zip 1.txt adding: 1.txt (deflated 74%) [root@bogon zip]# ll 总用量 796 -rw-r--r-- 1 root root 642394 12月 26 18:06 1.txt -rw-r--r-- 1 root root 170088 12月 27 09:25 1.txt.zip [root@bogon zip]#
3.zip压缩目录和文件
[root@bogon tmp]# zip -r gzip.zip dnsmasq.txt gzip adding: dnsmasq.txt (deflated 64%) adding: gzip/ (stored 0%) adding: gzip/1.txt (deflated 74%) adding: gzip/2.txt (deflated 74%) [root@bogon tmp]#
[root@bogon tmp]# ll *.zip -rw-r--r-- 1 root root 349639 12月 27 09:37 gzip.zip [root@bogon tmp]#
4.unzip 减压zip压缩包
[root@bogon tmp]# unzip gzip.zip Archive: gzip.zip replace dnsmasq.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A inflating: dnsmasq.txt inflating: gzip/1.txt inflating: gzip/2.txt [root@bogon tmp]#
5.将文件减压到test目录
[root@bogon tmp]# unzip gzip.zip -d test/ Archive: gzip.zip inflating: test/dnsmasq.txt creating: test/gzip/ inflating: test/gzip/1.txt inflating: test/gzip/2.txt [root@bogon tmp]#
6.zip没有zipcat命令,可以用unzip -l 查看文件列表
[root@bogon tmp]# unzip -l gzip.zip Archive: gzip.zip Length Date Time Name --------- ---------- ----- ---- 25194 12-22-2017 17:49 dnsmasq.txt 0 12-26-2017 14:16 gzip/ 642394 12-26-2017 09:18 gzip/1.txt 642394 12-26-2017 14:16 gzip/2.txt --------- ------- 1309982 4 files [root@bogon tmp]#
tar打包
1.tar c创建 v可视化 f后面跟打包成什么
[root@bogon tar]# tar cvf zip.tar zip/ zip/ zip/1.txt zip/1.txt.zip zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt [root@bogon tar]#
2.解包用xvf 从档案文件中释放文件
[root@bogon tar]# tar -xvf zip.tar zip/ zip/1.txt zip/1.txt.zip zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt [root@bogon tar]# ll 总用量 2060 drwxr-xr-x 3 root root 45 12月 27 10:02 zip -rw-r--r-- 1 root root 2109440 12月 27 10:07 zip.tar [root@bogon tar]#
3.tar可以目录文件一起打包
[root@bogon tar]# tar -cvf zip.tar zip 1.txt 2.txt zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip 1.txt 2.txt [root@bogon tar]#
4.tar -tf 可以查看包文件列表
[root@bogon tar]# tar -tf zip.tar zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip 1.txt 2.txt [root@bogon tar]#
5.--exclude 指定打包时不包含的目录
[root@bogon tar]# tar -tf zip.tar zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip 1.txt 2.txt [root@bogon tar]# tar -cvf zip.tar --exclude gzip zip 1.txt 2.txt zip/ zip/1.txt zip/1.txt.zip 1.txt 2.txt [root@bogon tar]#
6.--exclude 可以写多个不包含*.txt
[root@bogon tar]# tar -cvf zip.tar --exclude gzip --exclude "*.txt" zip 1.txt 2.txt zip/ zip/1.txt.zip [root@bogon tar]#
7.tar打包并压缩成gz格式tar -zcvf
[root@bogon tar]# tar -zcvf zip.tar.gz zip zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip [root@bogon tar]# du -sh zip.tar.gz 664K zip.tar.gz [root@bogon tar]#
8.支持bz2
[root@bogon tar]# tar -jcvf zip.tar.bz2 zip zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip [root@bogon tar]#
9.支持xz压缩
[root@bogon tar]# tar -Jcvf zip.tar.xz zip zip/ zip/gzip/ zip/gzip/1.txt zip/gzip/2.txt zip/1.txt zip/1.txt.zip [root@bogon tar]# du -sh zip.tar.xz 308K zip.tar.xz [root@bogon tar]#