使用 sudo tee 和 heredoc 附加到现有文件

Mou*_*inX 15 bash files tee here-document

在 bash 中生成脚本并将其保存到需要 sudo 的位置,我们有这个方法,我喜欢:

sudo tee "$OUTFILE" > /dev/null <<'EOF'
foo
bar
EOF
Run Code Online (Sandbox Code Playgroud)

但是,我想使用这种方法附加到现有文件 $OUTFILE。上述方法覆盖现有文件 $OUTFILE。

jor*_*anm 18

您需要附加而不是覆盖的-a选项tee


Cbh*_*ihe 5

如果您更喜欢使用cat,那么请走这条路线,首先$OUTFILE作为输出的容器传递:

$ OUTFILE=/path/to/restricted_write_access/file
$ sudo out=$OUTFILE sh -c 'cat << EOF >> $out
foo
bar
EOF'
Run Code Online (Sandbox Code Playgroud)