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

Publicado por Daniel Zaia Manzano em 15/07/2013

[ Hits: 76.476 ]

 


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

lshw - Obtendo informações de hardware

Montando partições NTFS com permissão de leitura e escrita

Alterar editor de textos padrão no Debian Squeeze

Alterar resolução de tela do terminal (modo texto)

Como alterar o nome da interface de rede

Leitura recomendada

Backup com tar remoto

IV Ciclo de Palestras sobre Software Livre CIRP - USP (arquivos e áudio do evento)

Tela sensível ao toque - ativar e desativar

Usando skins de Winamp no XMMS

Como usar um GIF como wallpaper no I3WM

  

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