我希望 tar 提取在某个文件范围后停止

I want tar extract to stop after a certain file range

我有一个巨大的 tar 档案,我正在从中拉出大部分来一次处理一个。我不想为了防止它填满磁盘和崩溃其他应用程序而不得不照看它。

我知道我可以使用 --starting-file= 从存档中的任意文件中获取 tart,但似乎没有 --stopping-file= 命令。

看起来我可以写一个反向排除模式让它忽略所有文件之后,但它似乎仍然会尝试循环遍历所有索引(至少是顶级文件夹)检查它们,消耗资源并防止提前终止。

有没有更好的方法阻止它在我想要的部分之后继续?

您可以用 tar -t -f my.tar > my.list

写出完整的文件列表

grep 这样的链接过滤器或修改文件可以限制列表。所以要解压'my/folder/path'、运行tar -t -f my.tar | grep "my/folder/path" > my.list

路径下的所有文件和文件夹

然后使用 tar x -T my.list -f my.tar

提取列出的文件

感谢 Jens 的策略建议。