首页 > 代码库 > [Linux] 解压tar.gz文件,解压部分文件

[Linux] 解压tar.gz文件,解压部分文件

遇到数据库无法查找问题原因,只能找日志,查找日志的时候发现老的日志都被压缩了,只能尝试解压了

 

数据量比较大,只能在生产解压了,再进行查找

文件名为*.tar.gz,自己博客以前记录过解压方法:

http://www.cnblogs.com/garinzhang/archive/2013/04/23/3037147.html

使用tar –zxvf *.tar.gz无法解压,明明好好的tar.gz文件能这样解压的,为什么不能解压?

 

后来想了想,是不是先要解压*.gz文件,使用gunzip *.tar.gz进行解压成功,解压出来的文件名为:*.tar

由于日志文档相关多,占用空间比较大,正在使用tar xvf *.tar进行解压,发现解压出来好多文件,而且时间很长,最终决定去中止解压,心里想了想,是不是有方法只解压一部分文件呢

 

于是搜索了一下,发现确实有此方法:

http://blog.chinaunix.net/uid-10697776-id-2935568.html

http://bbs.chinaunix.net/thread-1770627-1-1.html

文章中说的,可以使用以下方法查看压缩文件里面的内容:

tar –tzvf *.tar.gz   (由于我此时是.tar文件,所以使用tar -tvf即可),查看确实能查看压缩文件里的内容

使用以下方法进行解压:

解压单个文件:

tar –zxvf *.tar.gz /test/filename.txt

解压多个文件:

tar –zxvf *.tar.gz /test/filenam*

解压到指定目录:

tar –zxvf *.tar.gz /text/filename.txt –C /opt/targetfolder

 

在我们生产上无法执行上面这些命令,查找相关文档后发现是由于AIX跟其他版本的Linux不一样导致:

0. 怕生产上解压文件,将磁盘挤爆,先查询一下磁盘情况(使用df -g,以GB方式显示,-m以MB形式显示),显示还有63GB:

efbill_2:[/opt/oecs-g2/log/backup/compressed]#df -g
文件系统           GB 块      可用 %Used    Iused %Iused     安装于
/dev/hd4            5.00      4.52   10%    10570     1% /
/dev/hd2           48.00     45.26    6%    57427     1% /usr
/dev/hd9var        24.50     23.90    3%     8549     1% /var
/dev/hd3            5.00      4.84    4%      348     1% /tmp
/dev/fwdump         1.00      1.00    1%        6     1% /var/adm/ras/platform
/dev/hd1            5.00      5.00    1%       14     1% /home
/dev/hd11admin       5.00      5.00    1%        5     1% /admin
/proc                  -         -    -         -     -  /proc
/dev/hd10opt      119.50     63.32   48%    22030     1% /opt

1. 首先查看linux版本

efbill_2:[/opt/oecs-g2/log/backup/compressed]#cat /proc/version
Aug  6 2010
13:36:14
1032A_61L
@(#) _kdb_buildinfo unix_64 Aug  6 2010 13:36:14 1032A_61L
efbill_2:[/opt/oecs-g2/log/backup/compressed]#uname -a
AIX
efbill-2 1 6 00F764BD4C00

2. 搜索关键字:aix tar.gz 解压,找到答案:

http://blog.sina.com.cn/s/blog_4b055d6b0100s711.html

在AIX上最常见的压缩文件就是.tar檔了,而除了tar文件以外,有时会遇到数据是用其它的压缩文件格式,所以偶顺手整理了一些常见的压缩文件格式,在AIX要怎么解压缩 :

*.tar.Z file format

o 压缩§ # compress filename.tar

o 解压§ # zcat filename.tar.Z | tar -xvf -

*.tar.gz file format

o 压缩§ # tar cvf - folder | gzip > filename.tar.gz

o 解压§ # gunzip -c filename.tar.gz | tar -xvf -

*.zip file format (注1)

o 解压§ # unzip filename.zip

*.tgz file format

o 解压§ # gzip -d filename.tgz | tar -xvf -

注1 : 注意,AIX预设并没有装unzip的程序,可以去这边抓下来安装。

3. 解压成功,再次需要尝试是否能只解压一部分文件出来

结合上面部分解压文件,尝试过好几次终于找出办法:

1. 显示出所有文件:

efbill_2:[/opt/oecs-g2/log/backup/compressed]#gunzip -c 20140401_09.tar.gz | tar –tvf -

2. 解压出部分文件:

单个文件:

efbill_2:[/opt/oecs-g2/log/backup/compressed]#gunzip -c 20140401_09.tar.gz | tar -xvf - 20140407110630/billing.log.40

3. 多个文件:貌似无法按照前面的办法解压,反正目地已经达到了