这样做是否有效:
{
tar -c dir1
tar -c dir2
} | cat > file.tar
生成的 file.tar 是有效的 tar 包吗?
如果不是,我该如何动态连接 tar 包?
答案1
是的,稍微修改一下你的方法。
tar 支持将多个 tar 文件连接在一起....记住它的历史...它是一个磁带档案....它是一个数据流,让人联想到从读/写头呼啸而过的磁带卷轴....对于 tar 程序来说,它只是数据块...
根据我的测试显示,你必须在某处至少有一个 tar 文件......
tar cf one.tar buncha files to add
从这一点开始...您可以添加更多文件,或附加另一个 tar(或多个......)
tar rf one.tar even more files to fill up this pseudo tape
tar Af one.tar two.tar three.tar four.tar
在这个例子中,所有内容都被压缩到‘one.tar’中……
如果你使用'射频',它将新文件附加到给定的 tar(一个此处),而如果你使用房颤,它将一个或多个 tar 文件附加到原始 tar 文件上(urk!递归 tar!粘性!)
与往常一样,手册页是你的朋友。(缓慢、微弱地发出磷绿色光芒的朋友……但只是朋友)
答案2
您不能像这样直接连接 tarball,它不会像您预期的那样运行。您可以使用以下命令检查 tarball 的内容:
tar tf file.tar
dir1
这只会打印不带的内容dir2
。要将两个目录dir1
和存档dir2
到中file.tar
,您可以使用:
tar cf file.tar dir1 dir2
该手册可从以下网址获取:http://www.gnu.org/software/tar/manual/