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


43

Скажімо, у мене є:

foo.txt
bar
baz.ooo

Якщо я буду користуватися, ls -1 !(*.*)то отримаю лише barвихід. Чудово, зараз я хочу досягти однакових результатів із знахідкою - деякі, find -regexякі зроблять цю роботу.

ПРИМІТКА:

find -name !(*.*)це не відповідь, оскільки !(*.*)це все ще глобус Баша, яким я НЕ можу користуватися.

Відповіді:


64

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

ви також можете скористатися -maxdepthопцією зменшення глибини пошуку.


1
Мені найбільше подобається ваша відповідь, оскільки у мене є деякі інші обмеження для файлових файлів, а ваша - це кулезахисне.
pawel7318

Це також чудово, коли ls -1 !(*.*)не вийде, оскільки !дає "Подія не знайдена".
Номенон

2
@Noumenon робити, set +Hщоб вирішити це
pawel7318

1
Якщо ви ставитесь .gitignoreдо файлу без розширення (наприклад, Node's path.extname ()), використовуйте ! -name "?*.*"замість! -name "*.*"
Johnny Wong,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.