2016-11-06 17 views
0

我有一组tgz文件,并且想要从每个tgz文件中提取特定文件。 是否存在单行命令或是否应该在循环中完成? 我试过这个,但它只从一个文件夹中提取文件。从一组tgz文件中提取文件

焦油-zxvf * .tgz的--wildcards 'COPO'

回答

0

试试下面的命令 -

考虑你有两个TGZ文件 -

[email protected]:~$ ls -ltr *tgz 
-rw-r--r-- 1 vipin vipin 171 Nov 6 03:56 combine.tar.tgz 
-rw-r--r-- 1 vipin vipin 159 Nov 6 03:56 combine1.tar.tgz 

二者均含有文件3.txt

[email protected]:~$ zcat *tgz 
1.txt0000644000175000017500000000001613007570074011013 0ustar vipinvipintesting file2 
2.txt0000644000175000017500000000001613007570074011014 0ustar vipinvipintesting file2 
3.txt0000644000175000017500000000001613007570074011015 0ustar vipinvipintesting file2 
4.txt0000644000175000017500000000001613007570074011016 0ustar vipinvipintesting file2 
1.txt0000644000175000017500000000002613007570022011005 0ustar vipinvipintesting 
testing file1 
2.txt0000644000175000017500000000002613007570022011006 0ustar vipinvipintesting 
testing file1 
**3.txt0000644000175000017500000000002613007570022011007 0ustar vipinvipintesting** 
testing file1 
4.txt0000644000175000017500000000002613007570022011010 0ustar vipinvipintesting 
testing file1 
5.txt0000644000175000017500000000002613007570022011011 0ustar vipinvipintesting 
testing file1 

而你需要3.txt f从两个tgz文件。

[email protected]:~$ for i in *tar.tgz;do tar -xf $i 3.txt && mv 3.txt $i.3.txt;done 
[email protected]:~$ ls -ltr combine*txt 
-rw-r--r-- 1 vipin vipin 22 Nov 6 03:55 combine.tar.tgz.3.txt 
-rw-r--r-- 1 vipin vipin 14 Nov 6 03:56 combine1.tar.tgz.3.txt