O arquivo é truncado quando você redireciona a saída usando >
, antes que o comando sed
seja executado.
BSD sed
Use sed -i .bak '/^127\.0\.0\.1[[:space:]]/d' hosts
para editar um arquivo em linha, salvando um backup com a extensão bak
ou sed -i '' [...]
para ignorar a criação do backup.
GNU sed
Use sed -ibak '/^127\.0\.0\.1[[:space:]]/d' hosts
para editar um arquivo em linha, salvando um backup com a extensão bak
ou sed -i [...]
para ignorar a criação do backup.
Você também pode fazer isso manualmente, por exemplo, o seguinte:
sed '/^127\.0\.0\.1[[:space:]]/d' hosts > hosts.new
cat hosts.new > hosts
rm hosts.new
Embora essa seja mais uma linha que mv hosts.new hosts
, ela reterá os metadados do arquivo de hosts
.