znajdź pliki bez rozszerzenia

43

Powiedzmy, że mam:

foo.txt
bar
baz.ooo

Jeśli ls -1 !(*.*)użyję, dostanę tylko barna wyjściu. Świetnie, teraz chcę mieć takie same wyniki z find - niektóre find -regex, które wykonają pracę.

UWAGA:

find -name !(*.*)nie jest odpowiedzią, ponieważ !(*.*)wciąż jest globem Basha, którego NIE mogę użyć.

pawel7318
źródło

Odpowiedzi:

64

można użyć: neguje następujące wyrażenie, tutaj nazwa pliku, który zawiera „”find . -type f ! -name "*.*"!

możesz również użyć -maxdepthopcji, aby zmniejszyć głębokość wyszukiwania.

fduff
źródło
1
Najbardziej podoba mi się twoja odpowiedź, ponieważ moje ma inne ograniczenia w nazwach plików, a twoja jest kuloodporna.
pawel7318
Jest to również świetne, gdy ls -1 !(*.*)nie będzie działać, ponieważ !daje komunikat „Nie znaleziono zdarzenia”.
Noumenon,
2
@Noumenon zrobić, set +Haby to rozwiązać
pawel7318,
1
Jeśli traktujesz .gitignorejako plik bez rozszerzenia (jak path.extname () Node), użyj ! -name "?*.*"zamiast! -name "*.*"
Johnny Wong