linux - "cat/dev/random"与 "tail -f/dev/random"

标签 linux shell unix random tail

声明

cat /dev/random

如预期的那样继续产生输出,但是

tail -f /dev/random

挂起(至少在 OSX 和 SUSE 上)。 为什么后一条语句挂起?

最佳答案

tail -f 做了几件事:

  1. 找到流的结尾,通过读取直到到达 EOF 或通过查找结尾(/dev/random 上不可用的操作)。
  2. 备份一定长度(可能通过保留最近读取内容的适当长度的缓冲区,可能通​​过保留初始扫描期间最后 N 行的查找位置列表,或通过其他方式),然后打印该点和结尾之间的内容。
  3. 继续打印超过该点的新内容,因为此类内容可用。

如果没有尽头——如 /dev/random 的情况——那么第一步将永远不会完成。

cat 不需要找到结束点来从它返回,因此它没有关联的故障点。

关于linux - "cat/dev/random"与 "tail -f/dev/random",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658769/

相关文章:

python - 如何使用 dbus 为函数编写单元测试以从 Spotify 获取信息?

linux - 不同的 perl verions 不共享安装的 rpms

mysql - 如何在 mySQL 命令行查询中使用 $RANDOM (linux)?

bash - 在 unix 中创建一个串联文件,然后在同一个脚本中将该文件邮寄给大家

linux - 提取 zip 文件内容并动态重命名目录

unix - 僵尸进程如何表现出来?

linux - 使用变量中的用户名和密码进行 curl 下载

实时捕捉关键

python - 如何取消泡菜扩展文件

shell - Expect脚本中的数组初始化