Linux常用命令之--tar

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

对于用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)