Как найти файлы только в заданном каталоге и игнорировать подкаталоги с помощью bash


файлы / шаблон, который меня интересует: /разработки/Азбука-сканер, устройство /dev/Азбука-наличными ....

в команда:

find /dev/ -name 'abc-*'

что вернулся:

/dev/abc-scanner
/dev/abc-cash
...
...
...
/dev/.udev/names/abc-scanner
/dev/.udev/names/abc-cash

Я хочу игнорировать последние файлы: /dev/.в udev/...

3 75

3 ответа:

Если вы просто хотите ограничить поиск до первого уровня, вы можете сделать:

 find /dev -maxdepth 1 -name 'abc-*'

... или если вы особенно хотите исключить .udev каталог, вы можете сделать:

 find /dev -name '.udev' -prune -o -name 'abc-*' -print

есть ли какая-то особая причина, по которой вам нужно использовать find? Вы можете просто использовать ls чтобы найти файлы, соответствующие шаблону в каталоге.

ls /dev/abc-*

Если вам нужно использовать find можно использовать -maxdepth 1 переключиться только применить к указанному каталогу.

Это может сделать то, что вы хотите:

find /dev \( ! -name /dev -prune \) -type f -print