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ć.

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.