比方说,我有两个稍微不同的方式生成的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