如何在检测SMTP端口时保存nc命令的输出内容
解决nc命令输出无法保存到文件的问题
问题根源
nc -v的verbose提示信息(包括版本、连接状态这类内容)是输出到**标准错误流(stderr)**的。你之前的两种命令要么只重定向了标准输出流(stdout),要么重定向顺序错误,导致没捕获到这些实际输出的内容。
正确的命令写法
有两种可靠的实现方式:
方式1:一次性合并所有输出到文件
用&>符号同时捕获标准输出和标准错误到目标文件:
timeout 5 nc -v -u 127.0.0.1 25 &> output.txt
方式2:按正确顺序重定向流
先将标准输出写入文件,再把标准错误重定向到和标准输出相同的位置(注意2>&1必须放在文件重定向的后面):
timeout 5 nc -v -u 127.0.0.1 25 > output.txt 2>&1
验证结果
执行命令后,通过以下命令查看文件内容:
cat output.txt
就能看到之前在终端显示的Ncat: Version 7.50和Ncat: Connected to 127.0.0.1:25.这类内容了。
内容的提问来源于stack exchange,提问作者gr68
相关产品推荐
相关产品推荐

