Redirecionando a saída principal para o arquivo hosts de atualização [duplicado]

0

Estou escrevendo um script para alterar o conteúdo do meu arquivo hosts , mas fiquei preso no redirecionamento head output.

Se eu head -n -1 hosts >hosts my hosts file resultar vazio e sim, tiver mais de uma linha.

    
por Esolitos 25.11.2012 / 17:55

1 resposta

2

Isso porque seu shell trunca o arquivo quando você redireciona para ele. Isso acontece antes que a cabeça tenha a chance de lê-lo.

Você pode usar um arquivo temporário:

head -n1 hosts > hosts.tmp && mv hosts.tmp hosts

Ou use sponge do pacote moreutils:

head -n1 hosts | sponge hosts
    
por 25.11.2012 / 18:10