O bash extended glob +([^.])
irá combinar arquivos sem qualquer . em seu nome. Isso requer que você não tenha desfeito shopt extglob
(nas instalações modernas do bash, deve ser configurado por padrão). O padrão significa:
any number (but at least one) of characters other than .
Você pode colocar todos os nomes de arquivos em uma matriz:
NO_EXTENSION=( +([^.]) )
Você pode imprimir os nomes dos arquivos:
printf "%s\n" +([^.])
Ou passe todos eles para um utilitário:
ls -- +([^.])
Se você quer que eles sejam variáveis, mas não um array, você precisa ter certeza de que nenhum arquivo tem espaço em branco em seu nome. Se você está absolutamente certo disso, você pode fazer:
NO_EXTENSION=$(echo +([^.]))
A invocação do eco é necessária para que a expansão do nome do caminho aconteça, ao contrário do caso da matriz. Eu recomendo strongmente o uso de matrizes para esse tipo de lista, porque você não precisa se preocupar com caracteres especiais nos nomes de arquivos.