2009年6月23日星期二

Bash中命令粘合的一个例子

diff -a <(sudo dd if=/dev/sda1 bs=512 count=1 | tee >(gzip - > hd1.gz)) <(sudo dd if=/dev/sda2 bs=512 count=1 | tee >(gzip - > hd2.gz)) | tee output | vi -

上面的命令仅仅作为一个演示,把硬盘第1个分区的第1个扇区(前512个字节)压缩输出到hd1.gz,把第2个分区的第1个扇区压缩输出到hd2.gz,同时比较这两个扇区的差异,diff结果在vi中查看。

要注意的几点:

1. 每个dd要分别加上sudo,在diff前加sudo对dd无用。
2. 前两个tee后面的'>'和'('之间不能有空格,这里的'>'不是输出重定向,输出还会拷贝到stdout。
3. tee output若改为tee > output的话,输出就都定向到了output文件,不拷贝到stdout了,vi也得不到任何输入了。

没有评论:

发表评论