
À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” ?”