Sudo命令中使用重定向

直接在sudo命令中使用重定向可能会出问题,如:

sudo route -n > /etc/haha
会报告错误:

bash: /etc/haha: 权限不够

原因简析

这是因为shell在解析上面的命令时时,把sudo route -n做为命令部分执行,而命令的输出结果则存到/etc/haha中。也就是说sudo只对命令部分有效,对重定向部分无效,所以发生了权限不够的错误。

解决方法

针对上述原因,可以用这个方法解决问题

sudo sh -c "route -n > /etc/haha"
这样sudo执行的是一个shell,在具有root权限的shell中执行前面的命令,就不会再出现权限问题了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值