Excluindo vazio enquanto mantém arquivos não vazios de 4 KB no Ubuntu

Excluindo vazio enquanto mantém arquivos não vazios de 4 KB no Ubuntu

Eu tenho uma pasta que contém centenas de milhares de pequenos arquivos .txt de tamanho 4kb. Alguns deles estão totalmente vazios, enquanto outros não. Porém, todos eles apresentam o mesmo tamanho de 4kb, pois este é o tamanho mínimo de bloco configurado. Existe uma maneira de excluir massivamente os vazios, mas manter os não vazios? Fazendo um

rsync --remove-sent-files -rv --min-size=4kb

remove tudo.

Obrigado

Responder1

Acho que encontrei uma resposta parcial. Se supormos que um arquivo txt com conteúdo vazio tem pelo menos um caractere oculto, então alguém pode encontrar todos os arquivos com tamanho inferior a um número específico de bytes e excluí-los. Se, por exemplo, quisermos excluir todos os arquivos de tamanho 1 byte, podemos emitir:

find . -type f -size -2c -delete

Responder2

Os arquivos verdadeiramente vazios mostrarão 0 bytes, quando visualizados com ls -l.

Você pode removê-los com find(leiaman find https://manpages.ubuntu.com/manpages/cosmic/en/man1/find.1.html):

find folder -maxdepth 1 -type f -name '*.txt' -size 0 -delete

informação relacionada