tail -f
делает несколько вещей:
- найти конец потока, либо чтение до достижения EOF или делать стремиться к концу (операция не доступна на
/dev/random
).
- Резервное копирование определенной длины (возможно, путем сохранения буфера соответствующей длины содержимого, недавно прочитанного, возможно, путем сохранения списка позиций поиска для последних N строк во время первоначального сканирования или каким-либо другим способом) и печати содержимое между этой точкой и концом.
- Продолжайте печатать новое содержимое, прошедшее после этого момента, поскольку такое содержимое становится доступным.
Если нет конца - как в случае с /dev/random
- этот первый шаг никогда не будет завершен.
cat
не нужно искать конец, чтобы отскакивать от него, и поэтому у него нет точки отказа.
Не программирование, но прочитайте страницу руководства для хвоста, и вы поймете, что он делает. Это не кошка. –
Не уверен, что вы используете/dev/random, но вы, вероятно, хотите/dev/urandom. – voutasaurus