O que significa “/ dev / null”?

16

Eu entendo que > /dev/null redireciona as coisas para /dev/null , que age como um blackhole. No entanto, não entendo o que < /dev/null significa. Eu vi um script escrito assim:

nohup myprogram > foo.out 2> foo.err < /dev/null &

Então, o que significa < /dev/null no código acima?

aqui está uma example onde é sugerido

    
por Elgs Qian Chen 20.09.2015 / 18:42

2 respostas

19

Ele garante que todos os fluxos de E / S sejam contabilizados / ocupados.

Dessa forma, o processo em segundo plano não tem nada "amarrado" ao terminal, para que você possa cuidar de seus negócios sem que seu programa tente ler a partir do TTY, o que causaria a suspensão do terminal.

Nesse caso, como você está iniciando o processo sobre o ssh a partir de um script de shell, ele garante que o script possa ser movido sem restrições.

    
por 20.09.2015 / 18:44
12

program </dev/null significa que program está aceitando seu argumento de entrada (pode ser um parâmetro de entrada para uma opção ou pode ser um arquivo de entrada para operar) através do descritor de arquivo 0, ie STDIN, do arquivo /dev/null .

Como você já sabe, /dev/null não contém nada, ele notificará o EOF (Fim do Arquivo) ao ser lido, portanto, qualquer programa que use entrada de /dev/null basicamente redirecionará nada como seu argumento de entrada.

    
por 20.09.2015 / 19:26

Tags