端末で1行のコマンドを実行して、Macのhostsファイルに行を追加しようとしています。
これはSudoを使用すると簡単だと思いましたが、>>
をホストファイルに追加しようとすると「許可が拒否されました」を返しますが、>
のホストの内容を置き換えようとすると機能します。
Sudo echo test >> /etc/hosts
-bash: /etc/hosts: Permission denied
$
Sudo echo test > /etc/hosts
Password:
$
OSは最新です。
これは、echo
がrootとして実行されているためですが、実際にリダイレクトを実行しているのはシェルです。これを機能させるには、新しいシェルを生成する必要があります。
Sudo -- sh -c "echo test >> /etc/hosts"
編集:>
リダイレクトが機能するという事実を見たことはありません。説明できません。
新しい行が最初に作成されたことを確認するために、私はこれを使用しました:
Sudo -- sh -c "echo \ \ >> /etc/hosts";Sudo -- sh -c "echo 127.0.0.1 testdomain.com >> /etc/hosts"