2016-11-06 38 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