これらの命令は本質的に異なるのですか、それとも意味上違っていますか?

これらの命令は本質的に異なるのですか、それとも意味上違っていますか?

curlスクリプトをインポートして実行するシェルスクリプトでは、この2つの方法は根本的に異なりますか?

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

sudo2番目のコマンドは右側にcurlしばらく停止することがありますが、最初のコマンドと異なるかどうかは明確に説明できません(もっと危険ですか?)。

答え1

実質的な違いがたくさんあります。

curl http://address-to-some-script/dosomething.sh | sudo tee /usr/bin/dosomething.sh

curl現在のユーザーとrootとしてtee実行され、/usr/bin/dosomething.sh以前に消去された内容も記録します。

sudo curl http://address-to-some-script/dosomething.sh >> /usr/bin/dosomething.sh

rootとして実行し、現在のユーザーの権限をcurl関連付けてみてください(現在のシェル設定のリダイレクト)。/usr/bin/dosomething.sh

関連情報