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

Publicado por Daniel Zaia Manzano em 15/07/2013

[ Hits: 79.976 ]

 


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

Como selecionar absolutamente todo o conteúdo de um diretório no modo texto

Debian - Versão da distribuição

PrintScreen em modo texto

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

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

Leitura recomendada

Obtendo informações do sistema com o script INXI

Entradas de Menu (executado no Ubuntu 9.10)

KRename - renomeando arquivos em massa

Som de login no Fluxbox

Adicionando esquemas de cores ao Geany

  

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