Questão / dev / zero ou / dev / null para redirecionamento?


Eu entendo que o padrão para redirecionar é /dev/null, mas porque não usar /dev/zero? Não tem o mesmo efeito?

Outra questão, o que todos os 1>>  2>>  &>>  >>& e outros significam para o redirecionamento


0


origem




Respostas:


Usando /dev/zero tem o mesmo efeito que /dev/null ao redirecionar a saída para ele. Não há razão para não usá-lo. Este último é mais comumente encontrado em exemplos e, portanto, tornou-se mais popular.

Quanto ao redirecionamento, você deve verificar o manual do seu shell. o Wiki do Bash Hackers tem um tutorial sobre redirecionamento e outra página de referência.

Basicamente,

  • > redireciona a saída para um arquivo

  • >> ao redirecionar os anexos para um arquivo (ou cria quando não existe), enquanto > trunca e, portanto, exclui o conteúdo do arquivo

  • n>, Onde n é o número do descritor de arquivo, redireciona a saída desse descritor para um arquivo. Tipicamente 1 e 2 são usados, sendo stdout e stderr, respectivamente.

  • m>&n redireciona o descritor de arquivo msaída para n, então você pode combinar, por exemplo, stdout e stderr: > /dev/null 2>&1

  • &> também combina stdout e stderr


3



Bem, há uma diferença. Se você está redirecionando a entrada, / dev / null não fornece nada, enquanto / dev / zero fornece zeros. - YtvwlD
@YtvwlD É por isso que eu disse: "ao redirecionar a saída para ele". Claro que eles têm diferentes usos para entrada. - slhck
Faz >&- / realmente / tem o mesmo efeito que > /dev/null? Talvez eu esteja sendo muito pedante aqui, mas de onde estou sentado eles parecem bem diferentes. - Robbie Mckennie
@RobbieMckennie Você está certo, não funciona aparentemente. Eu peguei essa informação do Wiki, mas não chequei no momento. - slhck
Para sua informação: en.wikipedia.org/?title=/dev/zero "Todas as operações de gravação para / dev / zero são bem-sucedidas sem outros efeitos" - akira