首页 > 代码库 > linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball
linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball
常见的Linux压缩文件扩展名
*.Z compress压缩的文件(已经被gzip替代)
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件(比gzip效果好,但只能针对一个文件来压缩)
*.tar tar程序打包的数据,没有压缩(使用tar打包成一个文件,可以解决bzip2不能压缩多个文件的问题)
*.tar.gz tar程序打包的数据,并经过gzip的压缩
*.tar.bz2 tar程序打包的数据,并经过bzip2的压缩
compress的使用
ubuntu安装命令:
apt-get install compress
操作命令:
执行命令后会替代目标文件
压缩 compress [-rcv] 文件名或目录名
解压缩 uncompress 文件名.z
执行命令不替代目标文件
压缩 compress -c 目标文件名 > 新文件名
主要参数:
-r: 连通目录下的文件一并压缩
-c: 将压缩数据输出到屏幕(不进行实际压缩)
-v: 将压缩后的文件信息和文件变化输出(不进行实际压缩)
gzip,zcat的使用
gzip可以解开compress,zip和gzip压缩的文件,压缩文件扩展名为gz
操作命令:
gzip [-cdtv#] 文件名或目录名
zcat 文件名.gz 不用解压缩在屏幕上输出压缩文件的内容
执行命令不替代目标文件
gzip -c 目标文件名 > 新文件名
gizp -d 目标文件名 > 新文件名
主要参数:
-c: 将压缩的数据输出到屏幕
-d: 解压缩的参数
-t: 用来校验一个压缩文件的一致性,看有无错误
-v: 显示原文件/压缩文件的压缩比信息
-#: 压缩等级,-1最快,-9最慢,默认-6,快慢速度和压缩比成反比
gunzip也是解压缩命令
bzip2,bzcat的使用
操作命令:
bzip2 [-cdkzv#] 文件名
bzcat 文件名.bz2
主要参数:
-c: 将压缩产生的数据输出到屏幕上
-d: 解压缩参数
-k: 保留原文件,不会删除原始文件
-z: 压缩的参数
-v: 显示原文件/压缩文件的压缩比信息
-v: 与gzip相同
bunzip2命令也可以用来解压缩
打包命令:tar
操作命令:
打包与压缩:tar [-j|-z] [cv] [-f 文件名]
查看文件: tar [-j|-z] [tv] [-f 文件名]
解压缩: tar [-j|-z] [xv] [-f 文件名] [-c 目录]
主要参数:
-c: 建立打包文件,可搭配-v来查看过程中被打包的文件名
-t: 查看打包文件内含有哪些文件
-x: 解压缩或解打包功能,可以配合-C(大写)在特定目录解开,-c,-t,-x不能同时出现在一串命令中
-j: 通过bzip2的支持进行压缩/解压缩:此文件名最好为*.tar.bz2
-z: 通过gzip的支持进行压缩/解压缩:此文件名最好为*.tar.gz
-v: 在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename: -f后面要立刻接要被处理的文件名
-C 目录:这个选项用在解压缩,在特定目录解压缩可以使用这个选项
-p:(小写p)保留备份数据的原本权限与属性,通常用于备份重要的配置文件,很重要的参数
-P:(大写P)保留绝对路径,允许备份数据中含有根目录存在
--exclude=FILE:在压缩的过程中,不要将FILE打包
技巧:
解压缩包内单一文件的方法
tar -jtv -f 目录/文件名.tar.bz2 | grep ‘查找的字符串’
grep是搜索关键词的功能,找到目标目录后
tar -jxv -f 打包文件名.tar.bz2 解开目标目录
打包某目录,但不含该目录下某些文件的方法
tar -jcv -f /root/etc.tar.bz2 --exclude=/root/etc* > --exclude=/root/etc.tar.bz2 /etc /root
仅备份比某个时刻还要新的档案
--newer选项和--newer-mtime
--newer表示后面含有mtime 与 ctime
--newer-mtime则仅是mtime
使用find /etc -newer /etc/passwd找出比较新的文件
找一个目标文件的时间
tar -jcv -f /root/etc.tar.bz2 > --newer-mtime="2011/10/3" /etc/*
tarfile,tarball
tarfile
仅仅使用tar指令打包没有经过压缩的文件
tarball
使用tar指令打包并经过压缩的文件
使用tar命令被分到磁带机/dev/st0的方法
tar -cv -f /dev/st0 /home/root/etc
利用管线命令与数据流备份
就是边打包变解压缩到目标目录
cd /tmp
tar -cvf - /etc|tar -xvf -
即:将/etc底下的资料直接copy到目录所在的路径即/tmp底下
linux下的文件压缩与打包---compress,gzip,zcat,bzip2,bzcat,tar,find,tarfile,tarball