Como eu faria isso dependeria do contexto. Se isso não fosse por um script, e eu só queria ver isso, eu estaria bem com o uso de ls:
ls -a | egrep -v '(tab|\.o$|\.bin$|~$)'
Se em um script, eu usaria um loop:
for file in *; do
#file $file in .* *; do -- To Include dot (hidden files)
if ! egrep -q '(tab|\.o$|\.bin$|~$)' <<<$file; then
echo $file
fi
done
Você pode adicionar outro se testar com -f se quiser apenas arquivos regulares e não diretórios. Se você quiser fazer isso recursivamente, você pode usar o GNU find com um teste -regex e posix-egrep. Mas leve em consideração o fato de que esse regex corresponderá ao caminho completo em relação ao diretório em que você pesquisou.
Outra boa opção são extensões estendidas se você tiver suporte para isso, veja a resposta de Dennis.