Реализация Powershell wget
отличается от wget
. Поэтому она не ведет себя как утилита UNIX/Linux wget
.
Как указал пользователь 4556274, Powershell использует wget
и curl
в качестве псевдонимов для собственного Invoke-WebRequest
.
Глядя на это (или запуская Get-Help wget
под Powershell), можно увидеть, что флаг -O [имя файла]
является приемлемым сокращением для -Output [filename]
и что Invoke-WebRequest [URI]
фактически возвращает объект, представляющий веб-страницу, а не записывает файл, имя которого основано на базовом имени URL-адреса.
Таким образом, это возвращает «ничего», если только вы не присвоите его переменной или не передадите его другой команде:
wget http://example.net/path/to/page.html
Но это доставляет веб-страницу «как и ожидалось»:
wget http://example.net/path/to/page.html -O page.html
Установка флага noexec на / tmp
не дает реальных преимуществ в плане безопасности. Если программа содержит ошибки и выполняет неотвеченную программу в / tmp
, она может сделать это, выполнив ее напрямую или передав ее в качестве аргумента интерпретатору. Если файл передается интерпретатору в качестве аргумента, он не обязательно должен быть исполняемым.
Установка флага noexec в / tmp
может нарушить работу некоторых программ, которые рассчитывают записать временный исполняемый файл и выполнить его. Временный исполняемый файл может быть, например, скомпилированной программой, созданной на лету из некоторого исходного кода или промежуточного кода, или сценарием очистки.