curl
在用于获取脚本然后执行它的shell 脚本中,这两种方法有本质上的不同吗?
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
...对...
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
sudo
第二个命令中的右边有一些东西curl
让我停顿,但我无法清楚地表达它是否或如何与第一个命令不同(风险更大?)。
答案1
存在许多实质性差异。
curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh
curl
以当前用户和tee
root 身份运行;它还会/usr/bin/dosomething.sh
在写入之前清除 的内容。
sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh
以 root 身份运行curl
,并尝试附加/usr/bin/dosomething.sh
当前用户的权限(当前 shell 设置重定向)。