echoコマンドを使用してファイルにテキストを挿入する

echoコマンドを使用してファイルにテキストを挿入する

次のようにファイルにテキストを挿入しようとします。

sudo echo "abc-abc/abc/abc" >> /etc/portage/make.conf

しかし、エラーが発生しました。権限が拒否されました。

sudoコマンドを使用していますが、

答え1

そのコマンドラインでは、シェルは/etc/portage/make.conf追加モードを開き、新しいプロセスの標準出力にし、sudoその新しいプロセスで実行されます。これはsudo開かれたechoファイルではなく、資格情報を使用して実行されるシェルです。

ルートで始まるコマンドでファイルを開く必要があります。したがって、次のようになります。

sudo sh -c 'echo "abc-abc/abc/abc" >> /etc/portage/make.conf'

または:

echo "abc-abc/abc/abc" | sudo tee -a /etc/portage/make.conf > /dev/null

答え2

Sudoは、 "echo "abc-abc/abc/abc""の場合、最初のコマンドのみを実行します。

したがって、コマンドの残りの部分(/etc/portage/make.confに書き込まれます)はユーザーモードで実行されます。

chmod を使用してファイルの権限を変更できます。

関連情報