Existe alguma vantagem/desvantagem em usar uma opção de saída de comandos (geralmente -o) se você puder apenas usar o redirecionamento de saída (>).
Originalmente, essa pergunta era especificamente referente ao cURL, mas depois de testar isso no cURL eu mesmo percebi que o STDOUT do cURL incluía muito mais informações do que apenas o HTML real, como códigos de status e cabeçalhos.
Entretanto, se um programa produz o mesmo STDOUT como opção de saída, há alguma diferença entre escolher o redirecionamento em vez da opção de arquivo de saída? (além de poder anexar ou mesclar com o redirecionamento de saída).
Nenhum dos dois é melhor, eles apenas têm casos de uso diferentes. Primeiro, nem todos os programas gravam na saída padrão, então às vezes você deve usar a opção deles para fornecer um nome de arquivo de saída. Por outro lado, nem todos os programas têm essa opção, então às vezes você deve redirecionar.
De forma mais geral, nos casos em que você tem a escolha, você pode usar o que preferir para o que está fazendo. Se, por exemplo, você estiver executando o comando como um usuário diferente usando
sudo
, então o redirecionamento será executado como seu usuário regular e não terá os privilégios elevados conferidos porsudo
:Isso ocorre porque o redirecionamento, o
>
, não faz parte decurl
, então não tem conexão com osudo
e está sendo executado como seu usuário regular. É também por isso que o erro aparece antes mesmo de eu ser solicitado a digitar uma senha. Então, aqui, usar o curl-o
é uma maneira possível de contornar esse problema:Por outro lado, se, por exemplo, você quiser anexar várias páginas a um arquivo, não poderá usar,
-o
pois isso substituirá o conteúdo do arquivo:Como você pode ver acima, temos apenas uma
<head>
tag no arquivo de saída, porque cada iteração sobrescreveu o conteúdo anterior. Se, em vez disso, redirecionássemos a saída usando>
, obteríamos tudo:Então, não há opção melhor ou pior, elas são apenas úteis em contextos diferentes. Se ambas funcionam para você, sinta-se à vontade para escolher a que preferir.