tar解压解包指定文件到指定目录

今日需要用到一个特别的应用:
先用tar -zcvf test.tar.gz ./test/进行打包压缩,这样打出来的包test.tar.gz中包含了test目录及其下的所有文件。
现在需要对test.tar.gz中的指定文件test/f1.txt进行解包到一个指定目录,比如为/root,用tar的-C选项可以指定目录,于是tar -zxvf test.tar.gz -C /root test/f1.txt,这样解包得到的是/root/test/f1.txt,而我需要的是/root/f1.txt,即我希望解包时只解包我指定的文件,而不包含原来的目录结构,查了tar的man帮助,没找到有该选项,可以做到吗?

作者: zoneg   发布时间: 2011-03-02

tar -zxf test.tar.gz  test/f1.txt -O  >/root/f1.txt

作者: 相思爱文   发布时间: 2011-03-02

桌面环境用file-roller解包

作者: 相思爱文   发布时间: 2011-03-02

哈哈非常感谢

作者: zoneg   发布时间: 2011-03-03

-O, --to-stdout
              extract files to standard output

解包到stdout中显示,用>重定向到文件,算是间接的实现吧

作者: zoneg   发布时间: 2011-03-03

不过用重定向的话,效率上会不会有比较明显的影响?我需要在脚本中大量循环调用,文件本身不大,1M左右,不一定都是文本,打成的包在300M左右吧。现在还没拿到数据,所以暂时无法验证

作者: zoneg   发布时间: 2011-03-03

不过用重定向的话,效率上会不会有比较明显的影响?我需要在脚本中大量循环调用,文件本身不大,1M左右,不一定都是文本,打成的包在300M左右吧。现在还没拿到数据,所以暂时无法验证
zoneg 发表于 2011-3-3 10:43
这个真没试过。利用管道和重定向可以实现很多灵活的功能。我的理解是,不会影响。

可以用稍大些的数据测试,看看结果。

作者: 相思爱文   发布时间: 2011-03-03