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.

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.