我正在运行命令 say,nmap www.somesite.com>file.txt
以便我可以将输出发送到 file.txt。但如果我这样做,我无法在终端上看到该命令的输出。是否可以让它在终端上也可见。
我知道的用法tee
,但我希望以这种方式具体地做到这一点。
答案1
tee
旨在分割STDIN
成一个文件并返回到STDOUT
。
简单来说,只需通过管道传输即可,如下所示:
nmap www.somesite.com | tee file.txt
目前接受的替代方案是运行nmap
两次,这是一个糟糕的想法。
您最好先运行一次到文件,然后输出文件。
nmap www.somesite.com > file.txt; cat file.txt
答案2
这正是它tee
的用途。你为什么不想使用它呢?
另一种方法是捕获输出,并将其回显两次:
output=$(nmap localhost)
echo "$output"
echo "$output" > somefile.txt
然而,在 nmap 的特殊情况下,您可以利用它的输出选项 -ox :
OUTPUT: -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3, and Grepable format, respectively, to the given filename.
例如:
nmap -oN somefile.txt localhost
似乎正是您想要的:输出到终端并写入文件。
答案3
不可能同时进行命令行视图和重定向进程
但您可以使用以下命令按顺序使用这两个过程
nmap www.somesite.com && nmap www.somesite.com > file.txt
首先它将在终端中执行命令,然后将输出保存为文件
希望这可以帮助!