我正在尝试在 ubuntu 14.04 上使用 Skype,但是当我输入:
sudo sh -c ‘echo “deb http://archive.canonical.com/ubuntu trusty partner” >> /etc/apt/sources.list.d/canonical_partner.list’
它显示“权限被拒绝”。
请帮忙,或者告诉我其他获取 Skype 的方法。
答案1
这里的问题与重定向无关,而是您复制了花括号字符。它们与直引号(终端将其理解为特殊字符)不同,因此该命令的含义完全不同。
这主要是您复制粘贴命令的网站的错误(您应该让他们知道)。
要修复此问题,只需将卷曲的版本替换为直的版本:
sudo sh -c 'echo "deb http://archive.canonical.com/ubuntu trusty partner" >> /etc/apt/sources.list.d/canonical_partner.list'
是的,tee
可能看起来更好,但重定向并没有错。
有人质疑这是否真的是原因。确实是,但我会证明这一点。首先解释的是原始命令中的重定向。Bash 尝试在输出文件上打开一个写入句柄(作为当前用户)第一的并失败了。
$ sudo afoijaf2 > /rawr
-bash: /rawr: Permission denied
这就是为什么我们没有看到命令未找到的原因。afoijaf2
这里显然不存在,也‘echo
显然是无效命令。两者都没有被执行——sudo
甚至没有运行——因为 Bash 无法获取写入句柄。这是第一个错误。
答案2
你不能使用 sudo 进行重定向,请使用 tee
echo foo | sudo tee -a file
还有其他方法