从一个 tar 文件中的多个 tar 文件中提取一个文件

从一个 tar 文件中的多个 tar 文件中提取一个文件

我有一个包含多个“.tar.gz”文件的“.tar”文件。在每个“.tar.gz”中,都有一个我需要的“.faa”文件。我不想拆开其他所有东西。

我一直在这里搜索很多老问题,但我似乎陷入了代码的一部分。根据我读过的内容,我写了这个:

tar -zxOf /pathtofolder/folder1.tar ".tar.gz" | tar -zxvf - '.faa' 

然而,它仅从“.tar.gz”之一中提取,而不是从其他 6 个中提取:

x 2758568008/2758568008.genes.faa

然后我尝试了一个 for 循环,以防万一:

tar -zxOf /Users/gchaput/Desktop/TestFolder/img_data_29800-13.tar | for file in '*.tar.gz'; do tar -zxf "$file" '*.faa'; done

但我收到错误:

tar: Error opening archive: Failed to open '*.tar.gz' 

我有 macOS 10.14.1,因此不幸的是,通配符不适合我。

答案1

使用“”代表'',这对linux总是有好处的!

相关内容