文档的压缩与打包
一、gzip与gunzip压缩
命令格式
压缩 : gzip [选项] [文件名。。。]
解压缩 : gunzip [选项] [文件名。。。]
常用命令选项
-d :对压缩文件进行解压缩
-l :对每个压缩文档,显示下列信息:压缩文件的大小、未压缩文件的大小、压缩比和未压缩文件的名字
-r :递归对指定目录下各个级子目录里的文件进行压缩或解压缩
-t :检查压缩文件的完整性
-v :对每一个进行压缩和解压缩的文件,显示文件名和压缩比
-n :用指定的数字调整压缩的速度,-1或--fast表示最快压缩(低压缩比);-9或--best表示最慢压缩比(高压缩),系统默认值为6
实例:
1、压缩目录下的所有文件
[root@mylinux bbb]# ls -R .: 1.txt 2.txt 3.txt ccc ./ccc: 1.txt 2.txt 3.txt [root@mylinux bbb]# gzip -r * [root@mylinux bbb]# ls -R .: 1.txt.gz 2.txt.gz 3.txt.gz ccc ./ccc: 1.txt.gz 2.txt.gz 3.txt.gz
2、压缩部分文件
[root@mylinux bbb]# gzip 2.txt 3.txt [root@mylinux bbb]# ls 1.txt 2.txt.gz 3.txt.gz ccc
3、查看压缩文件的情况
[root@mylinux bbb]# gzip -rl * compressed uncompressed ratio uncompressed_name 649 1534 59.3% 1.txt 3072 10688 71.5% 2.txt 3680 64128 94.3% 3.txt 3680 64128 94.3% ccc/3.txt 3072 10688 71.5% ccc/2.txt 649 1534 59.3% ccc/1.txt 14802 152700 90.3% (totals)
4、解压缩文件(与gzip -d同样效果)
[root@mylinux bbb]# gunzip -r * [root@mylinux bbb]# ls -R .: 1.txt 2.txt 3.txt ccc ./ccc: 1.txt 2.txt 3.txt
二、bzip2与bunzip2压缩
命令格式
压缩 : bzip2 [选项] [文件名。。。]
解压缩 : bunzip2 [选项] [文件名。。。]
常用命令选项
-d :解压缩
-f : 在压缩或解压缩时,若文件已存在,默认不会覆盖已有存在的文件。使用-f,可以强制进行覆盖
-k :在压缩或解压缩时,默认会删除源文件。使用-k,会保留源文件。
-q :安静模式
-s :降低程序执行时内存的使用量
-t :测试压缩文件的完整性
-v :压缩或解压缩文件时,显示详细的信息
实例
1、压缩文件,并保留源文件
[root@mylinux bbb]# bzip2 -kv 1.txt 2.txt 3.txt 1.txt: 2.263:1, 3.536 bits/byte, 55.80% saved, 1534 in, 678 out. 2.txt: 3.413:1, 2.344 bits/byte, 70.70% saved, 10688 in, 3132 out. 3.txt: 13.878:1, 0.576 bits/byte, 92.79% saved, 64128 in, 4621 out. [root@mylinux bbb]# ls 1.txt 1.txt.bz2 2.txt 2.txt.bz2 3.txt 3.txt.bz2 ccc
2、解压文件
[root@mylinux bbb]# ls 1.txt.bz2 2.txt.bz2 3.txt.bz2 ccc [root@mylinux bbb]# bunzip2 -v * 1.txt.bz2: done 2.txt.bz2: done 3.txt.bz2: done bunzip2: Input file ccc is a directory. [root@mylinux bbb]# ls 1.txt 2.txt 3.txt ccc
三、zip与unzip压缩
命令格式
zip [参数] [zip文件名[文件1 文件2。。。]]
常用命令选项
-m :将文件压缩之后,删除源文件
-q:安静模式,在压缩的时候不显示命令的执行过程
-r:以递归方式将指定的目录下的所有子目录以及文件一起处理
unzip [参数] zip文件
常用命令选项
-l:列出压缩文件所包含的内容
-v:显示详细的执行过程
实例
1、压缩指定目录下所有的文件和目录
[root@mylinux bbb]# ls 1.txt 2.txt 3.txt ccc [root@mylinux bbb]# zip -r file.zip * adding: 1.txt (deflated 59%) adding: 2.txt (deflated 71%) adding: 3.txt (deflated 94%) adding: ccc/ (stored 0%) adding: ccc/3.txt (deflated 94%) adding: ccc/1.txt (deflated 59%) adding: ccc/2.txt (deflated 71%) [root@mylinux bbb]# ls 1.txt 2.txt 3.txt ccc file.zip
2、压缩部分文件
[root@mylinux bbb]# ls 1.txt 2.txt 3.txt ccc [root@mylinux bbb]# zip file.zip 2.txt 3.txt adding: 2.txt (deflated 71%) adding: 3.txt (deflated 94%) [root@mylinux bbb]# ls 1.txt 2.txt 3.txt ccc file.zip
3、查看压缩文件的情况
[root@mylinux bbb]# unzip -l file.zip Archive: file.zip Length Date Time Name --------- ---------- ----- ---- 10688 03-25-2015 23:34 2.txt 64128 03-25-2015 23:34 3.txt --------- ------- 74816 2 files
4、解压文件
[root@mylinux aaa]# ls bbb file.zip [root@mylinux aaa]# unzip file.zip Archive: file.zip inflating: 2.txt inflating: 3.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file.zip
四、xz压缩
命令格式
xz [选项] [文件名。。。]
-d:对压缩文件解压缩
[root@mylinux bbb]# xz file.zip 2.txt 3.txt
解压缩
[root@mylinux bbb]# xz -d file.zip
五、打包程序tar
命令格式
tar [选项] tar文件 [目录或文件]
常用选项
-c:创建新的归档文件
-d:检查归档文件与指定目录的差异
-r:往归档文件中追加文件
-t:列出归档文件中的内容
-v:显示命令执行的信息
-u:只有当需要追加的文件比tar文件中已存在的文件版本更新的时候才添加
-x:还原归档文件中的文件或目录
-z:使用zip压缩归档文件
-j:使用bzip2压缩归档文件
实例
1、打包文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file.zip [root@mylinux aaa]# tar -cvf fiel_2.tar bbb/ bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip
2、查看归档文件的内容
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip [root@mylinux aaa]# tar -tvf file_2.tar drwxr-xr-x root/root 0 2015-03-26 20:51 bbb/ -rw-r--r-- root/root 64128 2015-03-25 23:34 bbb/3.txt -rw-r--r-- root/root 7002 2015-03-26 20:51 bbb/file.zip drwxr-xr-x root/root 0 2015-03-25 23:11 bbb/ccc/ -rw-r--r-- root/root 64128 2015-03-25 22:50 bbb/ccc/3.txt -rw-r--r-- root/root 1534 2015-03-25 22:50 bbb/ccc/1.txt -rwxr-xr-x root/root 10688 2015-03-25 22:50 bbb/ccc/2.txt -rw-r--r-- root/root 1534 2015-03-25 23:34 bbb/1.txt -rwxr-xr-x root/root 10688 2015-03-25 23:34 bbb/2.txt [root@mylinux aaa]#
3、还原归档文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip [root@mylinux aaa]# rm -rf bbb [root@mylinux aaa]# ls 2.txt 3.txt file_2.tar file.zip [root@mylinux aaa]# tar -xvf file_2.tar bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip
4、往归档文件中追加新文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip [root@mylinux aaa]# tar rvf file_2.tar 2.txt 2.txt [root@mylinux aaa]# tar -tvf file_2.tar drwxr-xr-x root/root 0 2015-03-26 20:51 bbb/ -rw-r--r-- root/root 64128 2015-03-25 23:34 bbb/3.txt -rw-r--r-- root/root 7002 2015-03-26 20:51 bbb/file.zip drwxr-xr-x root/root 0 2015-03-25 23:11 bbb/ccc/ -rw-r--r-- root/root 64128 2015-03-25 22:50 bbb/ccc/3.txt -rw-r--r-- root/root 1534 2015-03-25 22:50 bbb/ccc/1.txt -rwxr-xr-x root/root 10688 2015-03-25 22:50 bbb/ccc/2.txt -rw-r--r-- root/root 1534 2015-03-25 23:34 bbb/1.txt -rwxr-xr-x root/root 10688 2015-03-25 23:34 bbb/2.txt -rwxr-xr-x root/root 10688 2015-03-25 23:34 2.txt [root@mylinux aaa]#
更新文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip [root@mylinux aaa]# echo "aaaaaa" >> bbb/3.txt [root@mylinux aaa]# tar -uvf file_2.tar bbb/3.txt bbb/3.txt [root@mylinux aaa]#
5、压缩归档文件
使用gzip命令对目录进行压缩打包
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file.zip [root@mylinux aaa]# tar -czvf file_3.tar.gz bbb/ bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file.zip
使用bzip2进行压缩打包
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file.zip [root@mylinux aaa]# tar -cjvf file_4.tar.bz2 bbb/ bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip
还原gzip压缩的归档文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip [root@mylinux aaa]# rm -rf bbb [root@mylinux aaa]# ls 2.txt 3.txt file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip [root@mylinux aaa]# tar -xzvf file_3.tar.gz bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip
还原bzip2压缩的归档文件
[root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip [root@mylinux aaa]# rm -rf bbb [root@mylinux aaa]# ls 2.txt 3.txt file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip [root@mylinux aaa]# tar -xjvf file_4.tar.bz2 bbb/ bbb/3.txt bbb/file.zip bbb/ccc/ bbb/ccc/3.txt bbb/ccc/1.txt bbb/ccc/2.txt bbb/1.txt bbb/2.txt [root@mylinux aaa]# ls 2.txt 3.txt bbb file_2.tar file_3.tar.gz file_4.tar.bz2 file.zip
打包压缩对比
[root@mylinux aaa]# ls -lh file_* -rw-r--r--. 1 root root 170K 3月 26 21:27 file_2.tar -rw-r--r--. 1 root root 13K 3月 26 21:16 file_3.tar.gz -rw-r--r--. 1 root root 15K 3月 26 21:21 file_4.tar.bz2
特殊用法:打包的时候排除某个文件或目录
[root@mylinux aaa]# tar rvf file_2.tar --exclude 2.txt
本内容由导师:阿铭提供技术支持:跟阿铭学linux 点这里