Подтвердить что ты не робот

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

Я рассмотрел другие подобные вопросы, но не нашел того, что позволило бы мне понять концепцию и сделать ее применимой к моей ситуации на основе моего ограниченного времени. Я просто запускаю команду find для поиска определенных файлов, но некоторые файлы в подкаталогах имеют одно и то же имя, которое я хочу игнорировать. Спасибо за любую помощь. Ниже приведена команда, которую я использую:

Файлы/шаблон, которые меня интересуют:   /dev/abc -scanner,/dev/abc-cash....

Команда:

find /dev/ -name 'abc-*'

Что возвращается:

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

ls /dev/abc-*

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

Ответ 3

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

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