sudo teeとHeredocを使用して既存のファイルに追加する

sudo teeとHeredocを使用して既存のファイルに追加する

~からBashでスクリプトを生成し、sudoが必要な場所に保存します。私の好きな方法は次のとおりです。

sudo tee "$OUTFILE" > /dev/null <<'EOF'
foo
bar
EOF

しかし、このメソッドを使用して既存のファイル$ OUTFILEに追加したいと思います。上記の方法は、既存のファイル$ OUTFILEを上書きします。

答え1

上書きするのではなく接続するオプションが必要です-atee

答え2

を使用する場合は、まず出力用のコンテナに渡してcat次のパスに移動します。$OUTFILE

$ OUTFILE=/path/to/restricted_write_access/file
$ sudo out=$OUTFILE sh -c 'cat << EOF >> $out
foo
bar
EOF'

答え3

tee では、/dev/null のストリームを開く必要があります。簡単な方法でこれを行うことができます。cat

cat <<EOF >> $OUTFILE
foo
bar
EOF

キーボードを保存!

関連情報