1. ホーム
  2. bash

sudo cat << EOF > ファイルは動作しませんが、sudo suは動作します。

2023-10-06 23:09:45

質問

bashのコマンドプロンプトで以下を試しました。

sudo cat << EOF > /etc/yum.repos.d/some-name.repo
#Content
#....
#...
EOF

それは文句を言った.

-bash: /etc/yum.repos.d/some-name.repo: Permission denied

それから、私は sudo su を除いて全く同じことを試してみました。 sudo の前に cat というようにすると、問題なく動作しました。私は上記の中で何が欠けているのでしょうか?

どのように解決するのですか?

出力リダイレクト(例: >)は、自分のUIDで実行中はcatではなくbashで実行されます。rootのUIDで実行する場合は、sudoを使用してください。

sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo
line1
line2
line3
EOF'