
Às vezes, precisamos remover o conteúdo de um arquivo sem excluí-lo; para isso, o sistema operacional Linux oferece um comando chamado “truncate” que é usado para estender ou reduzir o tamanho do arquivo. Truncar um arquivo é muito mais rápido e simples sem modificar as permissões e a propriedade do arquivo.
O tamanho truncado depende do tamanho original do arquivo; os dados extras serão perdidos se o tamanho do arquivo for maior que o tamanho especificado.
Instalando Truncate
O comando “truncate” vem com a maioria das distribuições Linux.
Se não estiver instalado, use o comando abaixo para instalar em Debian, Ubuntu e derivados
sudo apt install coreutils
No RHEL, Oracle Linux, Fedora… use esse outro comando
sudo dnf install coreutils
Usando o Comando Truncate
Para remover o conteúdo de um arquivo use a opção “-s”. O comando truncate efetivamente elimina todo o conteúdo de um arquivo. Ele não exclui o arquivo em si, mas o deixa como um arquivo de zero byte no disco.
# truncate -s 0 /tmp/arquivo.txt
arquivo.txt fica zerado
[root@oraclelinux9 ~]# du -hs /tmp/arquivo.txt 0 /tmp/arquivo.txt
Truncando um arquivo para um tamanho específico
Vamos criar um arquivo chamado lista.txt
[root@oraclelinux9 ~]# touch /tmp/lista.txt
Vamos alimentá-lo com algum texto
[root@oraclelinux9 ~]# echo "um texto qualquer para o arquivo lista.txt" > /tmp/lista.txt
[root@oraclelinux9 ~]# echo "outro texto qualquer para o arquivo lista.txt" >> /tmp/lista.txt
Veja seu tamanho
[root@oraclelinux9 ~]# du -hs /tmp/lista.txt 4,0K /tmp/lista.txt
Vamos diminuir seu tamanho em 2 kilo bytes
[root@oraclelinux9 ~]# truncate -s -2k /tmp/lista.txt
Estendendo o tamanho do arquivo com Truncate
Você pode aumentar o tamanho do arquivo usando a opção “+” com “-s”.
#1 vamos criar um arquivo
[root@oraclelinux9 ~]# echo "meu texto redirecionado para um arquivo" > /tmp/texto.txt
#2 veja que o arquivo texto.txt está com 4 kilo bytes
[root@oraclelinux9 ~]# du -hs /tmp/texto.txt 4,0K /tmp/texto.txt
#3 vamos truncar ele, aumentando para +10 Mega bytes
[root@oraclelinux9 ~]# truncate -s +10m /tmp/texto.txt
Veja o resultado
[root@oraclelinux9 ~]# ls -lh /tmp/texto.txt -rw-r--r--. 1 root root 11M ago 3 18:03 /tmp/texto.txt
Se tirar o h do ls poderá ver com mais exatidão o tamanho,
[root@oraclelinux9 ~]# ls -l /tmp/texto.txt -rw-r--r--. 1 root root 10489856 ago 3 18:03 /tmp/texto.txt
Exibindo Help do Comando Truncate
Para exibir a ajuda/help para o comando truncate use truncate –help
[root@oraclelinux9 ~]# truncate --help
Uso: truncate OPÇÃO... ARQUIVO...
Reduz ou estende o tamanho de cada ARQUIVO para o tamanho especificado
Um argumento ARQUIVO que não exista é criado.
Se um ARQUIVO for maior que o tamanho especificado, os dados extras
são perdidos.
Se um ARQUIVO for menor, ele é estendido e a parte estendida esparsa
(buraco) é lida como zero bytes.
Argumentos obrigatórios para opções longas também o são para opções curtas.
-c, --no-create não cria arquivo algum
-o, --io-blocks trata TAMANHO como número de blocos de E/S,
ao invés de bytes
-r, --reference=ARQREF baseia-se o tamanho em ARQREF
-s, --size=TAM define ou ajusta o tamanho do arquivo para TAM bytes
--help mostra esta ajuda e sai
--version informa a versão e sai
O argumento TAM é uma unidade opcional e inteiro (exemplo: 10K é 10*1024).
As unidades são K,M,G,T,P,E,Z,Y (vezes 1024) ou KB,MB,... (vezes 1000).
Prefixos binários também podem ser usados: KiB=K, MiB=M e assim por diante.
TAM também pode ser prefixado por um dos seguintes caracteres modificadores:
"+" estende por, "-" reduz por, "<" no máximo, ">" no mínimo,
'/' arredonda para baixo para o múltiplo de,
'%' arredonda para cima para o múltiplo de.
Página de ajuda do GNU coreutils: <https://www.gnu.org/software/coreutils/>
Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>
Documentação completa em <https://www.gnu.org/software/coreutils/truncate>
ou disponível localmente via: info "(coreutils) truncate invocation"
Vendo a Versão da Ferramenta truncate
para saber qual versão da ferramenta truncate execute truncate –version
[root@oraclelinux9 ~]# truncate --version truncate (GNU coreutils) 8.32 Copyright (C) 2020 Free Software Foundation, Inc. Licença GPLv3+: GNU GPL versão 3 ou posterior <https://gnu.org/licenses/gpl.html> Este é um software livre: você é livre para alterá-lo e redistribuí-lo. NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei. Escrito por Padraig Brady
Conclusão
Você pode usar truncate para excluir o conteúdo de um arquivo sem deletar o mesmo. Você também pode alterar o tamanho do arquivo para o tamanho que deseja. Aprendemos como truncar o conteúdo de um arquivo, bem como reduzir ou estender os arquivos neste artigo.
Comment on “Linux: O que é e Como usar o comando “Truncate” ?”