linux下不解包查看tar包文件內容


以下內容轉自:http://www.361way.com/zcat-tar-zgrep/2550.html

為減少日志文件占用的空間,很多情況下我們會將日志文件以天或周為周期打包成tar.gz 包保存。雖然這樣做有利空間充分利用,但當我們想查看壓縮包內的內容時確很不方便。如果只是一個tar.gz文件,可以將其解壓,再利用grep、awk或vi等工具查看或處理。不過如果有一個月或都一年的日志需要找出某些關鍵詞的行,一個一個的解壓,然后再看,是不是很不現實。那有沒有什么簡便的方法,可以不解壓獲得我們想要的內容呢?

答案是肯定的,可以利用zutils工具包實現。Zutils 是一組用來處理壓縮文件的工具集,支持的壓縮檔包括:gzip, bzip2, lzip, and xz. 當前版本提供的命令有:zcat, zcmp, zdiff, and zgrep 。

直接查看tar.gz壓縮包里的內容可以使用:

 

zcat xxx.tar.gz

 

 

但是想要在其后面直接加管道grep處理呢?如下:

 

[root@back tmp]# zgrep 'footbar.js' vsftpd.tar.gz Binary file (standard input) matches [root@back tmp]# zcat vsftpd.tar.gz|grep 'footbar.js' Binary file (standard input) matches

 

 

發現不論是使用zgrep還是使用zcat后再grep都會報錯。難道不行?當然不是。查看下zgrep或grep的幫助文檔。有這么一行:

 

--binary-files=text

 

加上該參數呢?

zcat vsftpd.tar.gz|grep --binary-files=text 'footbar.js' zgrep --binary-files=text 'footbar.js' vsftpd.tar.gz

 

發現可以查看文件內容了 ! 為什么呢?

因為我壓縮是用的tar czvf參數進行的打包。其實現上經過tar與gzip兩層壓縮。導致其直接不能管道。如果不解包想直接查看壓縮包里包含了那些文件呢?可以用下面的命令:

[root@back tmp]# tar tvf vsftpd.tar.gz -rw------- root/root 441453365 2013-06-03 16:19:56 vsftpd.log

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM