在Linux日常维护中,经常需要备份同步一些比较重要的文件,而在传输过程中如果文件比较大往往会非常慢,而且还会非常占用空间,这时候就需要我们使用压缩工具对大文件进行压缩打包,下面我们来介绍一下常用的压缩工具以及其使用方法。
1.命令: gzip [-d][-1-9][filename] 作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失 ‘-d’ 解压 ‘-[1-9]’ 压缩等级(默认为6) 若想查看gzip压缩文件内容,可使用命令 zcat filename.gz
补充:
'-c' 指定路径
示例:
压缩:gzip -c 1.txt > /tmp/1.txt.gz
解压:gzip -d -c 1.txt.gz > /tmp/1.txt
gunzip -c 1.txt.gz > /tmp/1.txt
注意:以上命令解压/压缩完后源文件不会被删除
2.命令: bzip2 [-d][-1-9][filename] 作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失 ‘-d’ 解压 ‘-[1-9]’ 压缩等级(默认为9) 若想查看bzip2压缩文件内容,可使用命令 bzcat filename.bz2
补充:
bzip2也支持-c选项,也是压缩后源文件不会被删除
3.命令: xz [-d][-1-9][filename] 作用:用来压缩文件,不能直接压缩目录,压缩完毕后源文件消失 ‘-d’ 解压 ‘-[1-9]’ 压缩等级(默认为6) 若想查看xz压缩文件内容,可使用命令 xzcat filename.xz
其实,上述三个压缩命令并不常用,因为有更为强大的tar工具用以实现压缩的功能,到底有多强大呢,下面就来介绍工具tar
4.命令:tar [-zxcvf] ‘-z’ 是否同时具有gzip ‘-j’ 是否同时具有bzip2 ‘-J’ 是否透视具有xzip ‘-x’ 解开一个压缩文件 ‘-t’ 查看压缩包里面的文件 ‘-c’ 建立一个压缩文件 ‘-v’ 可视化 ‘-f’ 使用filename ‘--exclude filename’ 在压缩过程中,跳过filename不打包 ‘-C’ 指定解压目录(常用) '-t' 用来查看压缩包里面的内容 用法:用以压缩解压文件/目录 格式: 压缩时:tar zxvf test.tar.gz test ,即 tar [被压缩完后的文件][没被压缩时的文件]这非常重要! 解压时:tar zcvf test.tar.gz -C /tmp ,不用参数‘-C’的情况下是解压到当前目录,'-C'指定解压目录 压缩时排除多个文件:tar zxvf test.tar.gz --exclude 1.txt --exclude 2.txt test ,也就是tar [被压缩完的文件] [要排除的文件][没被压缩时的文件] 注意: (1)使用tar打包之后,绝对路径前面的/会去掉(仔细想想为什么会酱紫) (2)tar本身不具有压缩功能,只是进行打包而已,要使用压缩功能必须与gzip或bzip2一起使用,其默认压缩级别取决于gzip或bzip2的默认压缩级别。 要改变压缩级别,需要将打包和压缩分开进行,先用tar进行打包,然后用gzip或bzip2指定压缩级别对打包文件进行压缩。例如, tar -cvf FILE.tar FILE && gzip -9 FILE.tar tar -cvf FILE.tar FILE && bzip2 -6 FILE.tar
拓展用法: tar cvf - test| ssh 10.0.1.11 "cd /copy1/; tar xvf -" 命令解析: 还记得上面说的压缩时候的格式么,这条命令在管道‘|’之前那部分就是如此 ‘-’代表标准输出 因此tar cvf - test意为“将test的内容打包成标准输出” 而 tar xvf - 则意为“将上面的标准输出的内容解压到当前目录” 至于ssh部分请参考之前关于ssh的文章,这里不作详细描述 命令作用: 这条命令非常实用,用于实现通过网络拷贝数据
说完了tar,问一个背景吧,你知道在windows下常见的压缩包有rar和zip,默认rar在linux下是不支持压缩和解压吗,好在有相关的工具可以安装在linux平台上。而zip的压缩包是可以同时存在于linux平台和windows平台上的,因此,我们来看一下zip和/unzip命令。
5.命令:zip [-r][filename.zip][filename] 作用:用来压缩文件/目录 ‘-r’ 默认不支持直接压缩目录,需要用此参数 注意:zip压缩的格式类似与tar,都是压缩后,压缩前 命令:unzip [-ld] [file.zip] 作用:解压zip文件,且解压完毕后文件不会消失 ‘-l’ 查看文件清单,类似于tar的-t ‘-d’ 指定解压目录,类似于tar的-C
最后更新时间:2017年4月7日09:31:43