我想要一个脚本,可以自动从另一个网站迁移网站,并将包含内容附加到 /etc/httpd/conf.d/vhosts.conf 文件中。
但是,当我尝试使用 echo 将字符串附加到文件末尾时,我得到了以下信息:
$ sudo echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf
-bash: /etc/httpd/conf.d/vhosts.conf: Permission denied
但是我可以 vi /etc/httpd/conf.d/vhosts.conf,添加行并:wq 文件以保存并关闭它。
我错过了什么?
答案1
Sudo 提升它调用的进程,但不会提升任何当前 shell 的处理,如重定向、通配符等。
>> /etc/httpd/conf.d/vhosts.conf
您的当前的shell,它仍然在您当前的权限下运行。
您可以尝试这样的方法。
sudo bash -c 'echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf'
或者
echo "Include thing" | sudo tee -a /etc/httpd/conf.d/vhosts.conf