如何从一开始就跟随二进制文件(la“ tail -f”)?


10

是否可以从头开始遵循二进制文件la tail -f

在某些情况下,这很有用,例如,如果我正在scp将文件发送到远程服务器,同时又想将其提供给另一个进程(是的,我知道我可以使用ssh+ cat技巧)。

据我从FM所读的内容,tail在编写时要考虑到文本文件。

是否有使用标准posix工具进行此类操作的简单方法?


它在哪里说tail只能与文本文件一起使用?
rozcietrzewiacz 2011年

@rozcietrzewiacz在较旧的unice上,诸如文本之类的实用程序tail并不总是能处理二进制文件:它们可能会阻塞空字节,或者在输入文件中的最后一个换行符之后忽略杂散字节。现代系统确实可以应对。
吉尔斯(Gilles)'所以

Answers:


12

tail处理二进制数据以及处理文本。如果要从文件的开头开始,可以使用tail -c +1 -f


这对任何人都不起作用吗?我有一个二进制文件,其中包含16个出现的字符串,当我使用cat bin_file | strings - -o | grep match_string时会看到,但是当我这样做时tail -c +1 -f bin_file | strings - -o | grep match_string,在第9个匹配项之后我什么都没得到。我还注意到,-o与cat输出相比,来自的行号都少了1。如果我不使用grep,我将获得全部16个匹配项(以及其他所有信息),所以我认为问题是grep,但是我尝试了perl
单线
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.