Gil*_*il' 13
瓶颈很可能是从 DVD 驱动器读取,因此我们必须确保只读取一次,或者读取两次但间隔足够近,以便数据仍然在缓存中。后者听起来很难,所以让我们来看看第一个。
我们需要在某个地方弄一个复印机。如果我们限制使用基本的 shell 命令,唯一的选择是tee
. 因此,我们需要将输入(文件树)转换为流,将流提供给tee
,并将每个输出流转换回文件树。这样做的工具是存档器。对将保留在内存中的内容进行压缩是一种浪费,所以让我们使用tar
.
管道 ( command0 | command1
) 允许我们将一个命令的输出提供给另一个命令。我们需要将 的输出输入tee
到另外两个命令中,所以另一个 bash 构造就派上用场了:command1 >(command2)
创建一个管道,command1
作为第一个命令传递给它,而不是成为 .bashrc 的标准输出command2
。(在 bash 手册中查找进程替换。)
这是命令(未经测试):
mkdir /media/disk0/copy_of_dvd /media/disk1/copy_of_dvd
cd /media/cdrom
tar cf - . | tee >(tar xf - -C /media/disk0/copy_of_dvd) | tar xf - -C /media/disk1/copy_of_dvd
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
951 次 |
最近记录: |