이러한 명령은 실질적으로 다른가요, 아니면 의미상만 다른가요?

이러한 명령은 실질적으로 다른가요, 아니면 의미상만 다른가요?

curl스크립트를 가져온 다음 실행하는 데 사용하는 쉘 스크립트에서 이 두 가지 접근 방식이 실질적으로 다른가요?

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루트 로 실행됩니다 . 또한 /usr/bin/dosomething.sh쓰기 전에 내용을 지웁니다 .

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

루트로 실행되고 현재 사용자의 권한으로 curl추가를 시도합니다 (현재 쉘이 리디렉션을 설정합니다)./usr/bin/dosomething.sh

관련 정보