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帮助,没找到有该选项,可以做到吗?
先用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中显示,用>重定向到文件,算是间接的实现吧
extract files to standard output
解包到stdout中显示,用>重定向到文件,算是间接的实现吧
作者: zoneg 发布时间: 2011-03-03
不过用重定向的话,效率上会不会有比较明显的影响?我需要在脚本中大量循环调用,文件本身不大,1M左右,不一定都是文本,打成的包在300M左右吧。现在还没拿到数据,所以暂时无法验证
作者: zoneg 发布时间: 2011-03-03
不过用重定向的话,效率上会不会有比较明显的影响?我需要在脚本中大量循环调用,文件本身不大,1M左右,不一定都是文本,打成的包在300M左右吧。现在还没拿到数据,所以暂时无法验证
zoneg 发表于 2011-3-3 10:43
这个真没试过。利用管道和重定向可以实现很多灵活的功能。我的理解是,不会影响。zoneg 发表于 2011-3-3 10:43
可以用稍大些的数据测试,看看结果。
作者: 相思爱文 发布时间: 2011-03-03