encontre arquivos sem extensão

43

Digamos que eu tenho:

foo.txt
bar
baz.ooo

Se eu usar ls -1 !(*.*), vou receber apenas bara saída. Ótimo, agora eu quero ter os mesmos resultados com o find - alguns find -regexque farão o trabalho.

NOTA:

find -name !(*.*)não é a resposta, !(*.*)pois ainda é o globo de Bash que NÃO posso usar.

pawel7318
fonte

Respostas:

64

você poderia usar: find . -type f ! -name "*.*" the !nega a seguinte expressão, aqui um nome de arquivo que contém um '.'

você também pode usar a -maxdepthopção para reduzir a profundidade da pesquisa.

fduff
fonte
1
Eu gosto mais da sua resposta, já que a minha tem outras restrições para os nomes de arquivos e a sua é à prova de balas.
pawel7318
Isso também é ótimo quando ls -1 !(*.*)não funciona porque !fornece "Evento não encontrado".
Nov15
2
@Noumenon fazer set +Hpara resolver esse
pawel7318
1
Se você tratar .gitignorecomo um arquivo sem extensão (como path.extname () do Node), use em ! -name "?*.*"vez de! -name "*.*"
Johnny Wong