Почему я не могу повторить строку в / etc /? - PullRequest
0 голосов
/ 19 февраля 2019

Я нахожусь на centos, и я сделал sudo echo 'testline'>>/etc/test/test он сказал -bash: /etc/test/test: Permission denied

Однако, когда я делаю sudo vi /etc/test/test и вставляю testline и делаю :wq, выписывается нормально, почему этопроисходит?

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

Перенаправление обрабатывается оболочкой до запуска sudo, а не является ее частью.Вместо этого используйте tee, чтобы sudo запускал процесс, который фактически открывает файл для записи.

echo 'testline' | sudo tee -a /etc/test/test > /dev/null
0 голосов
/ 19 февраля 2019

Другой синтаксис для того же общего решения, которое эти парни уже представили:

echo "echo 'testline'>>/etc/test/test" | sudo su
0 голосов
/ 19 февраля 2019

Вам нужно заключить весь оператор (включая перенаправление) в группу, чтобы sudo распространялось вокруг него.

sudo bash -c "echo 'testline' >> /etc/test/test"

Примечание: это тоже не удастся, если /etc/test еще не существует.

...