Linux基础 压缩及归档命令

浪子不回头ぞ 提交于 2020-03-27 13:32:30

3 月,跳不动了?>>>

压缩比排序-> tar(不压缩) < zip < gzip < bzip2 < xz

gzip/bzip2/xz FILE 压缩生成(.gz/.bz2/.xz)扩展名的文件 会删除原文件

gunzip|bunzip2|(unxz|xzdec) FILE(.gz/.bz2/.xz) 解压文件 会删除原文件

zcat/bzcat/xzcat FILE(.gz/.bz2/.xz) 不解压的情况下查看文本文件的内容

gzip&bzip2&xz通用选项

    -k 保留源文件(gzip不支持)

    -d 解压缩

    -N [1, 9]指定压缩比 默认为6

zip是既归档又压缩但压缩比不大 众多OS默认支持的压缩格式

zip FILE.zip FILE... 压缩后不删除原文件

unzip FILE.zip 解压后不删除原文件

 

tar options [-f FILE.tar[.gz|.bz2|.xz]] [FILE...] 归档命令 选项可不加-

    -c 归档

    -x 展开

    -t 查看归档中的文件名

    -v 显示详细信息

    -f FILE 要tar的文件

    -C DIR 在指定目录展开[解压缩]

    -z 展开的同时解压缩.gz文件

    -j 展开的同时解压缩.bz2文件

    -J 展开的同时解压缩.xz文件

    -p 保留备份数据原本的权限和属性

    -P 直接在归档前的文件的原绝对路径下展开

    --exclude=FILE 归档过程中 不要将FILE归档
 

dd if=INPUTFILE of=OUTPUTFILE bs=BLOCKSIZE count=COUNT

    [skip=SKIP] [seek=SEEK] 从if复制到of 复制大小为BLOCKSIZE*COUNT

    skip表示if跳过多少SKIP个字节开始复制 seek表示of跳过SEEK个字节开始复制

cpio 古老却还是有用的归档和展开命令

cpio -ovcB > [FILE|DEV] 备份 需要配合find命令使用

cpio -ivcdu < [FILE|DEV] 还原

cpio -ivct < [FILE|DEV] 查看

    -o 复制输出(备份)

    -i 来自文件或设备复制到系统

    -d 自动新建目录 否则展开不一定在同一目录

    -B 默认blocks从512b增加道5120b 增加大文件存储速度

    -u 新的文件覆盖旧的文件

    -t 配合-i 查看文件或设备内容

    -c 一种portable format格式存储

    -v 显示详细信息

 

一些例子

1 将/etc目录归档压缩的同时在当前目录进行展开 -代表缓冲区

    tar -cvf - /etc | tar -xvf -

2 展开[解压缩]的最简单写法 根据文件扩展名自动展开[解压缩]

    tar -xf FILE.tar[.gz|.bz2|.xz]

3 查看归档中后缀名为.sh的文件 并详细显示出来

    tar -tvf TARFILE | egrep "*.sh"

4 cpio例子

    cpio -ivcdu < initrd 还原

    cpio -ivct < initrd 查看

    find /etc | cpio -ovcB > etc.old 备份

5 dd例子

    if=/dev/sda of=~/mbr.bak bs=512 count=1 备份MBR表

    if=/dev/zero of=/dev/sda bs=512 count=1 抹除MBR表

    一个文件abc.gz,大小为83456k 要将文件备份分成三个部分

        第一部分为备份文件abc.gz的前10000k

        第二部分为中间的70000k

        最后备份后面的3456k. 

    备份方法如下

        dd if=abc.gz of=abc.gz.bak1 bs=1k count=10000

        dd if=abc.gz of=abc.gz.bak2 bs=1k skip=10000 count=70000 

        dd if=abc.gz of=abc.gz.bak3 bs=1k skip=80000

    恢复方法如下

        dd if=abc.gz.bak1 of=abc.gz

        dd if=abc.gz.bak2 of=abc.gz bs=1k seek=10000

        dd if=abc.gz.bak3 of=abc.gz bs=1k seek=80000

 

旧命令

压缩命令 compress uncompress

旧备份和还原命令 dump restore

刻录相关命令 mkisofs cdrecord

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!