tarring在hp-ux上找到结果

时间:2010-06-02 13:58:10

标签: find tar hp-ux

$ find /tmp/a1
/tmp/a1
/tmp/a1/b2
/tmp/a1/b1
/tmp/a1/b1/x1

只需尝试

find /tmp/a1 -exec tar -cvf dirall.tar {} \;

根本不起作用

任何帮助

4 个答案:

答案 0 :(得分:3)

为找到的每个文件运行一次为-exec指定的命令。因此,每次运行命令时都会重新创建dirall.tar。相反,您应该将find的输出传递给tar。

find /tmp/a1 -print0 | tar --null -T- -cvf dirall.tar

请注意,如果您只是使用find获取/tmp/a1下的所有文件的列表而不进行任何类型的过滤,则使用tar -cvf dirall.tar /tmp/a1会更加简单。< / p>

答案 1 :(得分:1)

你离解决方案只有一个角色。 find命令的exec选项将执行找到每个文件的命令,因此您应将-c替换为-r以放置tar进入附加模式。每次find调用它时,它都会再添加一个文件:

rm -f dirall.tar
find /tmp/a1 -exec tar -rvf dirall.tar {} \;

答案 2 :(得分:0)

我认为像“find / tmp / a1 | xargs tar cvf foo.tar”这样的东西会起作用。但请确保先备份备份!

答案 3 :(得分:0)

hpux有cpio吗? 这将获取stdin和某些版本的文件列表 将以tar格式写出输出。