美文网首页Linux
Linux常用命令之--tar

Linux常用命令之--tar

作者: 逗儿比的日常 | 来源:发表于2020-12-11 18:49 被阅读0次

    不解压显示压缩文件的内容指令

    对于用gzip压缩的文件,有一系列以z开头的指令,可以在不经解压的情况下,就直接显示文件的内容。
    • zcat:直接显示压缩文件的内容 zcat <文件名>
    • zless:直接逐行显示压缩文件的内容
    对于用bzip压缩的文件,也有一系列以bz开头的指令
    • bzcat:直接显示压缩文件的内容
    • bzless:直接逐行显示压缩文件的内容

    tar指令

    功能说明:用于建立、还原备份文件的工具,它也可以加入或解开备份文件内的文件。有时也称之为“打包” 。tar命令的选项部分有没有-都可以。压缩的过程压缩前的文件还在,相当于把要打包的文件复制了一份儿并压缩了
    语 法:tar <选项> 【文件|目录】
    常用选项:
    • c 创建压缩包
    • v 将过程输出(将将要压缩的文件是什么都显示出来)
    • x 解出包
    • t 显示tar文件的内容 (还没创建的tar的命令行中写这个没有意义,因为tar文件还没创建,根本也看不了其中的内容)
    • r 在tar文件尾部追加文件
    • z 用gzip压缩或解压文件,用z压就得用z解压
    • j 用bzip压缩或解压文件 ,用j压就得用j解压
    • f 指定备份文件名 ,即接的是压缩包的文件名
    • -T 从指定的文件中读取欲打包的文件路径,好处是可以隐藏原始的路径,但得用脚本
    • -C 将文件备份到指定的目录

    文件在备份时压缩与解压缩
    备份时压缩
    tar jcvf test.tar.bz test* ( j:使用bzip2 )
    tar zcvf test.tar.gz test* ( z:使用gzip )
    解压备份文件 (如果不加-C路径,会解压到当前路径下)
    tar jxvf test.tar.bz -C /tmp( j:使用bzip2 )
    tar zxvf test.tar.gz -C /tmp( z:使用gzip )

    ❉tar解压的时候如果该路径下有同名的文件,它不进行询问直接进行覆盖原来的文件。这时和时间戳没有关系,新压缩包会覆盖原来的文件

    压缩绝对路径例子:
    • 假设我现在/tmp/文件夹里有文件夹test1(里面有文件file1,file2)以及文件夹test2
    • 在/tmp/里tar czvf test.gz /tmp/test1/,就会将/tmp/test1/这个文件集及里面的文件压缩成test.gz,这时在/tmp/路径ll能看见多出了一个test.gz文件
    • 在/tmp/路径里tar xzvf test.gz -C /tmp/test2/,会发现/tmp/test2/里有tmp文件夹→里有test1文件夹→里有file1文件和file2文件
    这是因为在压缩的时候将绝对路径压了进来,但是并不会对要压缩的文件以外的文件造成影响,也就是除了想要压缩的文件(在这里是/tmp/test1/file1,file2),其他的文件都没有被压缩到压缩包里。这时在/tmp/路径里tar xzvf test.gz -C /就可以将压缩包直接解压到/tmp/下了
    但是此时无法将压缩包解压缩在test2文件夹里,因为已经压缩的绝对路径无法改变

    ☆如果压缩的时候不是按照绝对路径,而是相对路径,那么在解压的时候-C后面就要加绝对路径,不然就是解压到当前所在路径了。还是建议压相对路径,不建议压绝对路径
    在/tmp/里tar czvf test.gz test1压缩
    在/tmp/里tar xzvf test.gz -C /tmp/test2/解压缩
    能看见test2文件夹里出现了test1文件夹,并且文件夹里有file1和file2文件

    相关文章

      网友评论

        本文标题:Linux常用命令之--tar

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