compress/uncompress
1、compress m.log 压缩完以后源文件会消失
2、每种工具的压缩算法和压缩率不同
3、解压 uncompress m.log.Z
4、支持标准输入 ,直接键入compress
并非所有文件都适合用压缩,例如.jpg 等,对于文件太小效果基本没有,compress会直接放弃压缩
compress常用用法:
-d 解压缩,相当于uncompress
-c 结果输出至标准输出,不删除原文件
-v 显示详情
相对很安全:compress -c m.log > m.log.Z
gzip/gunzip
1、与compress同样,压缩完以后源文件会消失
2、压缩gzip m.log --> m.log.gz
3、解压gunzip m.log.gz -->m.log
4、比compress 压缩率高
5、同样支持标准输入,键入gzip
zcat 预览,并不会解压,但是他的底层肯定是解压后显示的,它可以查看上述介绍的两种压缩方法,格式分别为.Z 、.gz 格式的
gzip2常用用法
bzip2 [OPTION]... FILE ...
-k keep, 保留原文件
-d 解压缩
-# 1-9,压缩比,默认为9
bunzip2 file.bz2 解压缩
bzcat file.bz2 不显式解压缩的前提下查看文本文件内容
xz/unxz/xzcat
xz [OPTION]... FILE ...
-k keep, 保留原文件
-d 解压缩
-# 压缩比,取值1-9,默认为6
unxz file.xz 解压缩
xzcat file.xz 不显式解压缩的前提下查看文本文件内容
zip/unzip
打包压缩
zip –r /backup/sysconfig /etc/sysconfig/
解包解压缩
unzip sysconfig.zip
cat /var/log/messages | zip messages -
unzip -p message > message # p 将文件解压缩到管道中,没有消息
压缩效率依次提升:compress(.Z)<gzip(.gz)< gzip2(.bz2)<xz(.xz)<unzip(.zip)
每个压缩算法不一样,压缩不一定适合于所有文件
上述所介绍的只是针对于文件,而非文件夹
tar先打包,后压缩 ,平时工作用tar 特别多
打包 tar cvf
预览 tar tvf etc.tar
解压包 tar xvf etc.tar
指定解压到某个特定路径 tar xvf etc.tar -C /tmp
追加文件到压缩文件 tar rf etc.tar FileName
上面所说只是打包,如果想要打包和压缩一起操作;
tar jcvf etc.tar.bz2 /etc/
zcvf .gz
Jcvf .xz /etc
部分时候有些文件 .tar.gz = .tgz 是等价的
几个常用的参数,很有用;
1、-exclude 排除文件
tar zcvf /root/a3.tgz --exclude=/app/host1 --exclude=/app/host2 /app #压缩/app下的包,但除去host1和host2
2、-T 选项指定输入文件 -X 选项指定包含要排除的文件列表
tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist #可以提前将压缩的包放在include文件夹中,不压缩的放入exclude中
3、split:分割一个文件为多个文件
分割大的 tar 文件为多份小文件,默认分割完后是字母
split -b size –d tar-file-name prefix-name
4、加 -d 参数分割后的文件后缀为数字
split -d -b size –d tar-file-name prefix-name.gz
5、分割好的文件,如果想要查看,需要合并, 只需要重定向到一个文件夹里就行
cat linuxa* >> linux.tar.xz (具体压缩
cpio
并不是压缩,只是打包工具
功能:复制文件从或到归档
cpio常见命令选项:
cpio [选项] > 文件名或者设备名 # 对标准输入配合其他操作
cpio [选项] < 文件名或者设备名
选项:
-o 将内存中归档文件提取到磁盘中 #o i 都是相对于内存而言
-O filename 输出到指定的归档文件名
-A 向已存在的归档文件中追加文件
-i 解包,将磁盘中文件提取到内存中
-I filename 对指定的归档文件名解压
-t 预览,查看文件内容或者输出到设备上的文件内容
-F filename 使用指定的文件名替代标准输入或输出
-d 解包生成目录,在cpio还原时,自动的建立目录
-v 显示打包过程中的文件名称
例子:
解包文件
cpio –idv < etc.cpio
内容预览
cpio –tv < etc.cpio
将/data内容追加bak.cpio
find /data | cpio -oA -F bak.cpio
内容预览
cpio –tv < etc.cpio
解包文件
cpio –idv < etc.cpio