美文网首页
shell命令4------压缩与解压

shell命令4------压缩与解压

作者: 我弟是个程序员 | 来源:发表于2017-09-15 11:19 被阅读0次

    学会了常用的文件操作,那么文件的压缩与解压也是必要的。

    1.zip / unzip 命令

    将文件或是目录进行压缩或是解压,默认生产“.zip”后缀结尾的压缩包。
    zip指令 格式如下:

    zip [选项] 压缩文件名 需要压缩的文档列表
    
    选项 说明
    -r 递归压缩,将制定目录下的所有文件及子目录全部压缩
    -d 压缩文件里删除指定文件
    -i “文件列表” 只压缩文件列表中的文件
    -x “文件列表” 压缩时排除文件列表中指定的文件
    -u 更新文件到压缩文件中
    -m 将文件加入压缩文件后,删除原始文件。即把文件加入原始文件中
    -F 尝试修复坏的压缩文件
    -T 检查压缩文件内的每个文件是否正确
    - 压缩级别 压缩级别为1~9之间的一个数字

    unzip指令 格式如下:

    unzip [选项] 压缩文件名
    
    选项 说明
    -x “文件列表” 加压文件,但不包含文件列表中指定的文件
    -t 测试压缩文件有无损坏,并不解压
    -v 查看压缩文件的详细信息,具体包含压缩文件中包含的文件的大小、文件名和压缩比等,并不解压
    -n 解压时不覆盖已存在的文件
    -o 解压时覆盖同名文件,并且不征求用户同意
    -d 目录名 将压缩文件解压到指定目录下
    > zip -9r /personal/test.zip /test //将/test 目录记及其子目录下的所有文件压缩到/personal/test.zip中
    
    2.gzip/gunzip 命令

    将一般的文件进行压缩或解压。压缩文件预设的扩展名为“.gz”,其实gunzip就是gzip的硬链接,因此无论是解压还是压缩,都可以用gzip来完成。

    gzip只能对文件进行压缩,不嫩压缩目录。即使压缩目录,也只能压缩目录内的所有文件。格式如下:

    gzip [选项] 压缩(解压缩)的文档名
    
    选项 说明
    -d 对压缩的文件进行解压
    -r 递归压缩目录及其子目录下的所有文件
    -t 检查压缩文件的完整性
    -v 对每个压缩和解压的文件,显示相应的文件名和压缩比
    -l 显示压缩文件的压缩信息,显示字段为压缩文件的大小、未压缩文档大小、压缩比和未压缩文档名
    -num 用指定的数字num配置压缩比,“-1”或是“-fast”为最低压缩比,“-9”或是“-best”为最高压缩比,默认6

    下面用gzip进行压缩文件,可以发现压缩文件后,源文件就被放进了压缩包内,源文件已经不存在了

    gzip命令压缩

    使用mv将文件移动一个位置,然后用mv指令将文件重命名。


    mv命令

    从下面可以发现gzip这个命令只能解压“.gz”后缀的文件


    gzip命令加压缩
    3.bzip2/bunzip2 命令

    和gzip一样,只能对文件进行压缩,默认后缀为“.bz2”。bunzip2是bzip2的软链接,所以压缩和解压缩都可以用bzip2来实现。格式如下:

    bzip2[选项] 要压缩(解压缩)的文件
    
    4.tar 命令

    tar命令是Linux下经常使用的归档工具,对文件或是目录进行打包归档,归档成一个文件,但不是进行压缩。格式如下:

    tar [主选项 + 辅助选项]  文件或是目录
    
    主选项 说明
    -c 新建文件
    -r 把要归档的文件追加到档案文件的末尾
    -t 列出档案文件中已经归档的文件列表
    -x 从打包的档案文件中还原出文件
    -u 更新档案文件,用新建文档替换档案中的原始文件
    主选项 说明
    -z 调用gzip命令在文件打包过程中压缩/解压文件
    -j 调用bzip2命令在文件打包过程中压缩/解压文件
    -v 指定在创建归档文件的过程中,显示各个归档文件的名称
    --exclude file 打包过程中,不讲指定file打包
    > tar -cvf /home/personal/test.tar /home/test //将/home/test目录下的所有文件打包为test.tar文件,并放在/home/personal/目录下
    
    tar解压
    5.dd 指令

    用来转换或复制文件,可以对设备进行备份,格式如下:

    dd if="input_file" of="output_file" bs="block_size" count="number"
    
    • if:就是输入文件,可以使设备。例如:磁盘某分区或是整个磁盘
    • of:就是输出文件,也可以是输出设备。例如:磁盘、磁带
    • bs:指定一个block大小,如果没有指定,默认是512字节
    • count:就是bs的数量
    > dd if=/home/personal/test.txt of=/home/test/test.bak   //将/home/personal/test.txt备份到/home/test/test.bak中
    
    6.cpio 命令

    cpio是通过重定向的方式,将文件进行打包、备份、还原、回复的工具。它可以解压“.cpio”或是“.tar”结尾的文件,格式如下:

    cpio [选项] >文件名或设备名
    cpio [选项] <文件名或设备名
    
    主选项 说明
    -o 将文件复制、打包成文件或者将文件输出到设备上
    -i 将打包文件解压或者将设备上的备份还原到系统
    -t 查看cpio打包的文件内容或是输出到设备上的文件内容
    -v 显示打包过程中的文件名
    -d 在cpio还原文件时自动创建相应的目录
    -c 一种较新的存储模式
    -B 让默认块 增大到5210字节,默认块为512字节,这样做的好处是可以存取速度

    相关文章

      网友评论

          本文标题:shell命令4------压缩与解压

          本文链接:https://www.haomeiwen.com/subject/dzmrsxtx.html