найти файлы без расширения


43

Скажем, у меня есть:

foo.txt
bar
baz.ooo

Если я буду использовать ls -1 !(*.*)то получу только barна выходе. Отлично, теперь я хочу получить те же результаты с find - некоторые find -regex, которые сделают эту работу.

НОТА:

find -name !(*.*)это не ответ, так как !(*.*)это все еще шар Бэша, который я НЕ могу использовать.

Ответы:


64

Вы могли бы использовать: нивелирует следующее выражение, здесь имя файла , который содержит «»find . -type f ! -name "*.*"!

Вы также можете использовать -maxdepthопцию, чтобы уменьшить глубину поиска.


1
Мне нравится ваш ответ больше всего, поскольку у меня есть некоторые другие ограничения для имен файлов, а ваш - пуленепробиваемый.
pawel7318

Это также здорово, когда ls -1 !(*.*)не работает, потому что !дает «Событие не найдено».
Ноумен

2
@ Нумен, set +Hчтобы решить эту проблему
pawel7318

1
Если вы рассматриваете .gitignoreкак файл без расширения (например, путь к узлу path.extname ()), используйте ! -name "?*.*"вместо! -name "*.*"
Джонни Вонг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.