Использовать «найти» в каком-то конкретном каталоге?

Мне было интересно, как ограничить диапазон поиска «найти» в какой-то каталог?

Например, как найти файлы /каталоги со строкой «math» в своих именах под некоторым каталогом «/home /tim /science /»?

Спасибо и приветствую!

40 голосов | спросил Tim 3 PMpSun, 03 Apr 2011 16:53:04 +040053Sunday 2011, 16:53:04

2 ответа


13

Протяните его через grep, вот так

$ locate less | grep ^/bin
/bin/bzless
/bin/less
/bin/lessecho
/bin/lessfile
/bin/lesskey
/bin/lesspipe
/bin/zless

Изменить: другой ответ лучше, я не знал, что вы можете передать шаблон для поиска.

ответил Adam Byrtek 3 PMpSun, 03 Apr 2011 18:42:00 +040042Sunday 2011, 18:42:00
8

Вы можете использовать locate /rootpath/*filenamespec. Я раньше не пробовал, но, похоже, работает. Для вашего примера это будет locate /home/tim/science/*math*

Вы можете посмотреть команду find, а не locate для такого поведения. Синтаксис будет find rootforsearch -name filenamepattern -print. В этом случае вашему примеру потребуется find /home/tim/science -name *math* -print. Не так быстро, как найти, поскольку нет базы данных для поиска ... она фактически ищет файловую систему , Существует множество опций, которые вы можете использовать, кроме печати, если вы намереваетесь что-то делать с файлом.

ответил Nerdfest 3 PMpSun, 03 Apr 2011 17:03:30 +040003Sunday 2011, 17:03:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132