Macete para apagar conteúdo de arquivo sem excluí-lo

Publicado por Daniel Zaia Manzano em 15/07/2013

[ Hits: 78.240 ]

 


Macete para apagar conteúdo de arquivo sem excluí-lo



Podem ocorrer situações em que se faz necessário apagar todo o conteúdo de um arquivo, porém, sem apagá-lo. E apagar o arquivo e criá-lo novamente, é muito trabalhoso e um tanto quanto amador. :)

Usar o comando echo > arquivo.txt faz com que o conteúdo do arquivo seja apagado, e em seu lugar fique apenas um caractere de nova linha.

Exemplo:

echo texto > arquivo.txt
$ cat arquivo.txt

texto


echo > arquivo.txt
$ cat arquivo.txt




Usar a opção "-n" do comando echo faz com que o caractere de nova linha nem chegue a aparecer, fazendo com que o arquivo fique completamente vazio, apesar de ainda existir.

Exemplo:

echo linux > arquivo.txt
$ cat arquivo.txt

linux


echo -n > arquivo.txt
$ cat arquivo.txt




Em ambas abordagens, ocorreu o seguinte:
  • A saída do comando foi redirecionada com sobrescrita (>) para um arquivo. Significa dizer que o resultado do comando substituirá o conteúdo do arquivo.
  • Acontece que o bash, por padrão, primeiro faz a operação de sobrescrita, para depois executar o comando. Disto isto, podemos concluir que, mesmo que não exista um comando propriamente dito, a sobrescrita invariavelmente acontece.

Exemplo:

echo gnu > arquivo.txt
$ cat arquivo.txt

gnu

> arquivo.txt
$ cat arquivo.txt



Outras dicas deste autor

Eliminando mensagem de aviso de configuração de rede no Debian

Acompanhando progresso na cópia de arquivos

Comando para listar usuários comuns

Liberando memória RAM ociosa

lshw - Obtendo informações de hardware

Leitura recomendada

Instalar o Unity 2D no Ubuntu 10.10

AdeskBar no Debian, em derivados e em outras distros

Instalação do Yaourt no Arch Linux

Corrigindo Funcionamento do Ícone do Dropbox (acertando atributos e permissões)

Resolver problemas do Google Earth 7 no Linux 32 bits

  

Comentários
[1] Comentário enviado por eltonmanoel em 15/07/2013 - 02:24h

Uma outra opção, que eu utilizo, é essa abaixo:
echo >''arquivo.txt

[2] Comentário enviado por Carlos_Cunha em 16/07/2013 - 20:45h

Eu uso mais simples ainda....

> arquivo


Apagado todo conteúdo do arquivo de forma simples e pratica!!!

[3] Comentário enviado por dzm_linux em 17/07/2013 - 08:04h


[2] Comentário enviado por PretooOO em 16/07/2013 - 20:45h:

Eu uso mais simples ainda....

> arquivo


Apagado todo conteúdo do arquivo de forma simples e pratica!!!


Amigo,

Leia a minha dica do início ao fim, e você vai descobrir que o macete ao qual eu me refiro é justamente este!

Abraços



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts