如果我将一个 bziped tar 文件拆分到多个 DVD 上,那么在不创建大量中间文件的情况下提取它的最佳方法是什么?我不想先将所有存档部分复制到中间磁盘。
到目前为止我能想到的最好的办法是
1号航站楼:
mkfifo temppipe1
mkfifo temppipe2
...
mkfifo temppipen
cat temppipe* | bunzip2 |tar -xvf -
2 号航站楼:
dd if=archive.tar.bz_part1 of=temppipe1
....
dd if=archive.tar.bz_partn of=temppipen
这很有效,让我可以在每张 DVD 之后更改 DVD,但我觉得这可能会创建大量命名管道,而且容易出错。在终端 2 和 tar 中输入一个拼写错误就会退出,只能重新开始。在开始时创建足够的命名管道也很重要
谁有更好的想法吗?
答案1
您可以使用单个管道,并保持其上的写入器打开,以便它在您完成之前不会关闭。
1号航站楼:
mkfifo temppipe
tar xvfj temppipe
2 号航站楼:
cat > temppipe
我们不会cat
向管道写入任何内容,但它的存在会使管道在我们运行dd
命令时保持打开状态。
3号航站楼:
dd if=archive.tar.bz_part1 of=temppipe # and so on
然后返回终端 2 并按 Control-D。 cat
将发送文件的最终结束并且 tar 将完成。