在提取tar.gz时处理单个文件

时间:2015-05-26 12:45:31

标签: shell unix gzip tar

我有一个巨大的.tgz文件,其内部结构如下:

./RandomFoldername1/file1
./RandomFoldername1/file2
./RandomFoldername2/file1
./RandomFoldername2/file2
etc

我想要做的是将每个单独的文件提取到标准输出,以便我可以将其随后传递给另一个命令。在执行此操作时,我还需要获取RandomFoldername名称和文件名,以便我可以在第二个命令中正确处理它们。

直到现在我的选择

  1. 要么提取所有的tarball并处理我将要使用的结构化文件,这不是一个选项,因为提取的tar不适合硬盘驱动器
  2. 创建一个模式匹配每个文件的循环,并在时间提取一个文件。这个选项虽然可以解决问题,但速度太慢,因为每次只有一个文件会冻结tarball。
  3. 在寻找如何解决这个问题时,我开始担心没有更好的选择。

1 个答案:

答案 0 :(得分:2)

使用tar工具,我不相信您有其他选择。

使用tar库为您选择的某种语言应该允许您执行您想要的操作,因为它应该允许您逐个遍历tarball中的条目并允许您提取/ pipe / etc.每个文件都是必要的一个一个。