Você pode usar find
:
find . -maxdepth 1 -type f -size 0 -delete
Estou acostumado a listar e classificar o tamanho dos arquivos da seguinte forma:
$ for entry in $(ls); do du -s "$entry"; done | sort -n
No entanto, como excluir todos os arquivos de 0 bytes?
Minha tentativa terrível seria tentar um if condicional, mas não sei como verificar o tamanho. Eu iria então canalizar todos os resultados e removê-los?
$ for entry in $(ls); if du -s "$entry" == 0 | rm "$entry"