linux下不解包查看tar包⽂件内容
为减少⽇志⽂件占⽤的空间,很多情况下我们会将⽇志⽂件以天或周为周期打包成 包保存。虽然这样做有利空间充分利⽤,但当我们想查看压缩包内的内容时确很不⽅便。如果只是⼀个⽂件,可以将其解压,再利⽤grep、awk或vi等⼯具查看或处理。不过如果有⼀个⽉或都⼀年的⽇志需要出某些关键词的⾏,⼀个⼀个的解压,然后再看,是不是很不现实。那有没有什么简便的⽅法,可以不解压获得我们想要的内容呢?
答案是肯定的,可以利⽤zutils⼯具包实现。Zutils 是⼀组⽤来处理压缩⽂件的⼯具集,⽀持的压缩档包括:gzip, bzip2, lzip, and xz. 当前版本提供的命令有:zcat, zcmp, zdiff, and zgrep 。
linux怎么读取文件内容直接查看压缩包⾥的内容可以使⽤:
zcat
但是想要在其后⾯直接加管道grep处理呢?如下:
[root@back tmp]# zgrep 'footbar.js'
Binary file (standard input) matches
[root@back tmp]# zcat p 'footbar.js'
Binary file (standard input) matches
发现不论是使⽤zgrep还是使⽤zcat后再grep都会报错。难道不⾏?当然不是。查看下zgrep或grep的帮助⽂档。有这么⼀⾏:
--binary-files=text
加上该参数呢?
zcat p --binary-files=text 'footbar.js'或
zgrep --binary-files=text 'footbar.js'
发现可以查看⽂件内容了 ! 为什么呢?
因为我压缩是⽤的tar czvf参数进⾏的打包。其实现上经过tar与gzip两层压缩。导致其直接不能管道。如果不解包想直接查看压缩包⾥包含了那些⽂件呢?可以⽤下⾯的命令:
[root@back tmp]# tar tvf
-rw------- root/root 441453365 2013-06-03 16:19:56 vsftpd.log

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。