Mar*_*ler 50
cat logifle.log | \xe2\x80\xa6
这是多余的,实际上会导致速度变慢。tail logfile.log
没有猫会更有意义!
它会快得多,因为当输入不可查找时,tail
需要做的是逐行读取所有标准输入,将最后 10 行保留在缓冲区中(以防它们应该是最后一个) 10 行);并且让输入来自通过您的cat
机制的管道,确保它不可查找。
这很慢,除非文件中的一行可以有 GB 大小,否则非常愚蠢:只需跳过前 54.9 GB。剩下的100MB肯定不会少于最后10行!从 100 MB 中获取最后 10 行应该足够快了。
\ntail --bytes 100M logfile.log | tail\n
Run Code Online (Sandbox Code Playgroud)\n但是,如果您正在使用 GNU Coreutil\xc2\xb9\ 的tail
实现,那么它已经执行了此操作(即,它查找文件末尾减去 2.5 kB,并从那里开始查找)。通过不在cat
这里滥用,而是让其tail
读取文件本身(或者仅使用重定向,效果相同!),您将获得更快的结果。
tail
\xc2\xb9 GNU Coreutils、现代 busybox 是我检查过的两个实现;两者都这样做。St\xc3\xa9phane 在下面指出,即使最初的1970 年代 PWB Unix 实现也执行此 \xe2\x80\x93 操作,但它仍然只是一个实现细节。