我想执行一个python文件/var/www/html
:
sudo python myFile.py
效果很好。
现在,我想将输出写入log.txt
。
因此,我输入:
sudo python myFile.py >> log.txt
但是,我收到以下错误:
-bash:log.txt:权限被拒绝
虽然我改变了log.txt的权限:
sudo chmod u+x log.txt
并ls -l log.txt
返回:
-rwxr--r-- 1 www-data www-data 0 2月 3 16:04 log.txt
我怎样才能解决这个问题?
答案1
这里的问题sudo python myFile.py >> log.txt
是你sudo python myFile.py
以 root 身份运行,但你的 shell 仍然以普通用户身份运行,这意味着>>
如果你没有写入权限,重定向将不起作用log.txt
正如 George 正确指出的那样,你应该这样做sudo bash -c "python myFile.py >> log.txt"
。或者,如果你myFile.py
不需要 root 权限,你可以这样做python myFile.py | sudo tee log.txt
答案2
我能想到的两个选择:
sudo bash -c "python myFile.py >> log.txt"
, 或者sudo chmod u+x myFile.py
, 然后sudo ./myFile.py >> log.txt