使用 cat 和 tee 时隐藏命令的输出

使用 cat 和 tee 时隐藏命令的输出

我有一个包含一些 IP 的文本文件。我想复制此文本文件的内容,/etc/ansible/hosts而不在终端上显示输出(如示例 2 所示)。

笔记:root 用户被禁用。

如果我使用以下内容:

  1. sudo cat myfile.txt >> /etc/ansible/host

它不会工作,因为 sudo cat 不会影响重定向(预期)。

  1. cat myfile.txt | sudo tee --append /etc/ansible/hosts

它将在终端中显示输出,然后将它们复制到 /etc/ansible/hosts AAAA BBBB CCCC

  1. 添加/dev/null将中断结果(不会将任何内容复制到/etc/ansible/hosts)。

答案1

sudo tee -a /etc/ansible/hosts <myfile.txt >/dev/null

或者,如果您想使用cat

cat myfile.txt | sudo tee -a /etc/ansible/hosts >/dev/null

其中任何一个都应该有效。目前尚不清楚您/dev/null在尝试时如何“添加”,但这会将标准输出重定向tee/dev/null

答案2

尝试使用带“-c”开关的 bash。例如:

sudo bash -c "cat /etc/hosts >> /etc/ansible/hosts" >> /dev/null

相关内容