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