Sudo命令中使用重定向
此頁由 Linux Wiki用戶Chenxing 於 2008年7月10日 (星期四) 07:40 的最後更改。
從 Linux Wiki
提示:此文已超过 16 年(5974 天)未更新,如发现内容过时或有误,欢迎改进:)
直接在sudo命令中使用重定向可能會出問題,如:
sudo route -n > /etc/haha
會報告錯誤:
bash: /etc/haha: 权限不够
原因簡析
這是因為shell在解析上面的命令時時,把sudo route -n做為命令部分執行,而命令的輸出結果則存到/etc/haha中。也就是說sudo只對命令部分有效,對重定向部分無效,所以發生了權限不夠的錯誤。
解決方法
針對上述原因,可以用這個方法解決問題[1]:
sudo sh -c "route -n > /etc/haha"
這樣sudo執行的是一個shell,在具有root權限的shell中執行前面的命令,就不會再出現權限問題了。
參考資料
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。