Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Рекурсивный поиск командой find ?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix
Предыдущая тема :: Следующая тема  
Автор Сообщение
@Lex
Гость





СообщениеДобавлено: Чт Ноя 27 2003 20:45    Заголовок сообщения: Рекурсивный поиск командой find ? Ответить с цитатой

Как сделать (какой использовать ключ), чтоб команда find искала не только в текущей директории, но и во всех поддиректориях?
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Чт Ноя 27 2003 20:47    Заголовок сообщения: Она так и делает (должна делать). А как ты её запускаешь? (-) Ответить с цитатой

-
Вернуться к началу
@Lex
Гость





СообщениеДобавлено: Чт Ноя 27 2003 20:51    Заголовок сообщения: Re: Она так и делает (должна делать). А как ты её запускаешь? (-) Ответить с цитатой

Например так find *.shtml
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Чт Ноя 27 2003 20:53    Заголовок сообщения: А мануал почитать? find . -name '*.shtml' Ты хоть знаешь, какие аргументы получает find в твоём случае, что звездатые шаблоны р Ответить с цитатой

-
Вернуться к началу
@Lex
Гость





СообщениеДобавлено: Чт Ноя 27 2003 20:58    Заголовок сообщения: Блин, скажи как найти все файлы с расширением shtml (например) в текущей и во всех поддиректориях pls Ответить с цитатой

А то мне это только и надо и ради этого лезть в мануалы влом когда есть люди кот могут посказать Smile
Вернуться к началу
@Lex
Гость





СообщениеДобавлено: Чт Ноя 27 2003 21:04    Заголовок сообщения: Re: А мануал почитать? find . -name '*.shtml' Ты хоть знаешь, какие аргументы получает find в твоём случае, что звездатые шабло Ответить с цитатой

К слову. find *.shtml в текущей директории все очень здорово находит, а вот в поддиректории не заглядывает
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Чт Ноя 27 2003 22:11    Заголовок сообщения: А ты мой ответ читал? Ответить с цитатой

Повторяю ещё раз:
find . -name '*.shtml'
(обрати внимание на апострофы).

То, что делалось в твоём варианте, было эквивалентно
echo *.shtml
Вернуться к началу
ryabinkin
Гость





СообщениеДобавлено: Пт Ноя 28 2003 19:22    Заголовок сообщения: Вы собеседника слушаете? А понимаете? Ответить с цитатой

Господин @Lex!
Вам ясно и недвусмысленно сказали, что Вы делаете ошибку. Вы тупите и не хотите включить мозги.
Тогда я возьму на себя труд помочь Вам.
Команда find -name *.shtml
выполняется следующим образом: сначала интерпретатор команд (например, bash) вместо шаблона *.shtml подставляет список, сформированнй в результате поиска в ТЕКУЩЕМ каталоге всех файлов, с именем, удовлетворяющем шаблону; затем этот список передается программе find. Естественно, если в Ваших подкаталогах нет файлов с такими именами, Вы будете думать, что find не выполнил рекурсивный поиск. Фактически, Вы воспользовались командой, полностью аналогичной
echo *.shtml
с единственным исключением, что она найдет также файлы с теми же именами и подкаталогах.
Для того, чтобы избежать подобной (нетривиальной!) ошибки, следуйте указаниям:
либо find -name \*.shtml
либо find -name '*.shtml'
как Вам и было указано.
Вернуться к началу
ryabinkin
Гость





СообщениеДобавлено: Пт Ноя 28 2003 19:32    Заголовок сообщения: Блин, текущий каталог '.' забыл. Сорри(-) Ответить с цитатой

.
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Сб Ноя 29 2003 10:57    Заголовок сообщения: Правильно говорит товарищ! Ответить с цитатой

Есть одно правило, которое я советую всем соблюдать не думая:
Шаблоны поиска/замены в командах grep/sed и маска для поиска файлов в команде find должны без раздумий браться в апострофы как только там есть что-то кроме букв, цифр, точки и минуса.
Время на установку апострофов гораздо меньше, чем время на размышление, стОит ли их ставить. Апострофы нужны потому, что двойнфе кавычки не экранируют доллар и обратные кавычки.

Ну и надо было почитать 'man find' на тему того, что первый аргумент = директория, от которой ведётся поиск. Кстати, я так и не нашёл, можно ли заставить find искать в нескольких директориях; задача была такая: я знаю, что где-то в директориях, перечисленных в $PATH, есть нужный мне файл, но я не помню, как он точно называется. Тогда я нашёл вручную, а потом было лень. Но если кто знает - было бы интересно.
Вернуться к началу
repin777
Гость





СообщениеДобавлено: Вс Ноя 30 2003 19:47    Заголовок сообщения: вот так Ответить с цитатой

рекурсивно ищет файл или дир. mc начиная от /
find / -name mc
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Unix Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...