从一组tgz文件中提取文件

时间:2016-11-06 11:21:34

标签: unix tar

我有一组tgz文件,想要从每个tgz文件中提取特定文件。 是否有一行命令相同或应该在循环中完成。 我尝试了这个,但它只提取了一个文件夹中的文件。

tar -zxvf * .tgz --wildcards' copo '

1 个答案:

答案 0 :(得分:0)

尝试以下命令 -

考虑你有两个tgz文件 -

vipin@kali:~$ 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

vipin@kali:~$ 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

你需要来自两个tgz文件的3.txt。

vipin@kali:~$ for i in *tar.tgz;do tar -xf $i 3.txt && mv 3.txt $i.3.txt;done
vipin@kali:~$ 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