![是否可以在本地捕获 SSH+sudo 输出而不写入主机名和 [sudo] 行?](https://linux22.com/image/48130/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%9C%AC%E5%9C%B0%E6%8D%95%E8%8E%B7%20SSH%2Bsudo%20%E8%BE%93%E5%87%BA%E8%80%8C%E4%B8%8D%E5%86%99%E5%85%A5%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%92%8C%20%5Bsudo%5D%20%E8%A1%8C%EF%BC%9F.png)
在本地写入 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