如何告诉“最后”命令从 STDIN 读取?

如何告诉“最后”命令从 STDIN 读取?
SERVER:~ # zcat /var/log/wtmp-20130827.gz | last -f -
last: -: No such file or directory
SERVER:~ # 

在不解压 wtmp 文件的情况下,如何使用最后一个命令查看 if 的输出?

答案1

last不支持从管道读取。您可以用作/dev/stdin文件名,但这有点无用,因为它仅在您首先从文件重定向时才有效。

将文件解压缩为临时文件。

wtmp=$(mktemp)
zcat /var/log/wtmp-20130827.gz >|"$wtmp"
last -f "$wtmp"
rm -f "$wtmp"

Zsh 有一种进程替换形式=(…),它将命令的输出放在临时文件中。

last -f =(zcat /var/log/wtmp-20130827.gz)

答案2

决不。

last(1) 未设计为能够读取 stdin。 /var/log/wtmp 或 -f xxx

它不支持“-”

相关内容