【发布时间】:2012-03-05 18:30:45
【问题描述】:
我基本上是在问为什么:
head -c 2 > /tmp/first-two-bytes
cat /tmp/first-two-bytes -
不会将 stdin 的前两个字节复制到 /tmp/first-two-bytes,然后将 stdin 的全部内容转储到 stout。
[编辑]为了清楚起见,这是我的机器上发生的事情:
$ uname -a
Darwin Myles-Byrnes-iMac.local 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
$ echo "hello, world" | (head -c 2 > /tmp/first-two-bytes; cat /tmp/first-two-bytes -)
he$ cat /tmp/first-two-bytes
he$
【问题讨论】:
-
它可以满足您对我的期望。你要向标准输入发送什么?
-
也适用于我,但请参阅下面的回复。
-
出于好奇,如果你有超过 8K 的输入,你会得到多少输出?我猜 head 会读取 4K 或 8K 的数据,如果你有足够的输入,猫会得到一些。
-
威廉:是的。刚刚在一个更大的文件上尝试过,这正是正在发生的事情。该死的