Supondo que seus arquivos contenham APENAS a cadeia NULL (sem nova linha, \n ), você pode usar grep e localizar esses arquivos.
O comando find irá coletar todos os arquivos com pelo menos 1 byte de tamanho ( -size +1c ) no diretório atual e então usar grep para verificar se eles contêm apenas repetições do caractere NULL:
$ find . -type f -size +1c -exec grep -m 1 -ovP "[^$ find . -type f -size +1c -exec grep -m 1 -ovP "[^$ find . -type f -size +1c -exec grep -m 1 -ovP "[^$ find . -type f -size +1c -exec grep -m 1 -ovP "[^%pre%]" {} \; | cut -d ' ' -f 3- | sed 's/ matches//'
./empty_file with spaces.jpg
./empty_file
]" {} \;
Binary file ./empty_file with spaces.jpg matches
Binary file ./empty_file matches
]" {} \; | cut -d ' ' -f 3- | sed 's/ matches//'
./empty_file with spaces.jpg
./empty_file
]" {} \;
Binary file ./empty_file with spaces.jpg matches
Binary file ./empty_file matches
O -v flag do grep faz com que ele imprima linhas não correspondentes. -m 1 significa "Parar após a primeira correspondência", -o significa imprimir apenas a parte da linha correspondente (evita imprimir linhas vazias de outros arquivos) e P usa expressões regulares Perl. O padrão [^ significa qualquer caractere não NULL]-v . Ao inverter isso ( -m 1 ) e adicionar o NULL flag, o grep irá reportar uma correspondência somente se o arquivo não contiver nada além de cut .
Finalmente, você pode canalizar isso através de sed e %code% para imprimir o nome do arquivo correspondente sozinho: