tar:用可能的前导点斜线可靠地提取一个成员

比方说,我有两个稍微不同的方式生成的tar档案:

$ tar tvf archive1.tar -rw-r--r-- root/root 567 2016-09-18 14:28 member1 -rw-r--r-- root/root 1696 2016-09-18 14:28 member2 $ tar tvf archive2.tar -rw-r--r-- root/root 567 2016-09-18 14:28 ./member1 -rw-r--r-- root/root 1696 2016-09-18 14:28 ./member2 

如何从两个档案中可靠地提取member1? 我正在通过pipe道接收焦油,发电机不在我的控制之下,虽然我可以多次运行pipe道,但我真的很乐意避免这样做。

PS:

 $ tar xOvf archive1.tar member1 > /dev/null member1 $ tar xOvf archive2.tar member1 > /dev/null tar: member1: Not found in archive tar: Exiting with failure status due to previous errors 

它看起来像命令行开关--no-anchored可以做你想做的。 从tar(1)手册页 (他们真的是非常有用的阅读或至less扫描)

–no锚
模式匹配后的任何'/'(默认排除)

 tar -tvf test -rw-rw-r-- iain/iain 0 2016-09-18 16:14 ./member1 -rw-rw-r-- iain/iain 0 2016-09-18 16:14 ./member2 

然后

 tar -xvf test member1 tar: member1: Not found in archive tar: Exiting with failure status due to previous errors 

接着

 tar -xvf test --no-anchored member1 ./member1