是否可以在本地捕获 SSH+sudo 输出而不写入主机名和 [sudo] 行?

是否可以在本地捕获 SSH+sudo 输出而不写入主机名和 [sudo] 行?

在本地写入 SSH 命令执行的输出时,是否可以抑制主机名和 [sudo] 行?

例如,当我通过 SSH 连接到服务器并运行时,sudo <command>它会显示

<hostname>
[sudo] password for user:

这被写入我正在将输出写入的文件。我正在使用sudo <command> 2>&1 /dev/null,但它并没有消除这些线条。

答案1

sudo <command> 2>&1 /dev/null不会将任何内容重定向到/dev/null.相反,你是:

  • 使用 2 个参数进行调用sudo<command>/dev/null。第二个将<command>在执行时传递给它。
  • 将错误消息重定向到标准输出。

这是一个简单的尝试:

$ sudo ls 2>&1 /dev/null
/dev/null

请参阅:您得到 的结果ls /dev/null。但是,你可以做类似的事情...

$ sudo ls >ls_output.txt 2>/dev/null

这将:

  • sudo使用 1 个参数进行调用: ls.
  • 将标准输出重定向到ls_output.txt.
  • 将标准错误重定向到/dev/null.

使用上面的命令,将列出当前工作目录的内容,并且其中ls_output.txt不会有任何数据。stderr

相关内容