Наш провайдер rinet
UnixFAQ.ru
   :: Поиск  
   :: Самые новые ::

   :: Самые читаемые ::
   :: Реклама ::

Начало
Работа в командной строке

Почему find(1) не находит существующие файлы?

 

Типичный пример этой "проблемы": в дереве ${tree} существует файл с именем "foo", но такая команда ничего о нем не сообщает, хотя мы хотим видеть сведения о всех файлах с именами "foo" или "bar":

$ find ${tree} -name foo -or -name bar -ls

Дело здесь в том, что в семантике find(1) операция "-ls" -- тоже логический предикат. Значит, неявная группировка операций будет такой:

( -name foo ) -or ( -name bar -and -ls )

Теперь нам очевидно, что "-ls" будет выполнен, только если предикат "-name bar" вернет истинное значение. Напротив, для файла "foo" не будет выполнено вообще никакой операции. Постойте, а как же неявный "-print"? Он исполняется по-умолчанию, только если в командной строке вообще нет исполнительных предикатов, но наша строка уже содержит "-ls".

Точно так же надо быть внимательным с группировкой остальных исполнительных предикатов find(1): "-exec", "-print", "-print0", "-ok".


Создано: Yar Tikhiy

   :: Новости ::

Сайт снова оживлен на новой площадке.

sem, 22.11.2008

Новый участник проекта - Сергей Матвейчук

glebius, 30.01.2005

Новый участник проекта - Владимир Савкин

glebius, 24.01.2004

Сайт переехал на новую площадку. Теперь услуги co-location предоставляются компанией Best Telecommunications, за что им огромное спасибо.

glebius, 05.09.2003

Новый участник проекта - Андрей Павлов

glebius, 29.07.2002

Сайт вернулся к жизни. Два месяца назад отказал жесткий диск, до этого работавший безотказно и не подавая никаких признаков скорой смерти. Тк я по жизни разгильдяй, то бэкапа не было. Однако нашлись добрые люди, которые подкинули свои мирроры и кэши, и как видите, мы снова живем. Огромное человеческое спасибо Константину Елапину, Дмитрию Тейблюму и Александру Дилевскому из Яндекса, а также vasilich@softhome.net и kx@usp.ru.
Новый дизайн сайта сделал Андрей Селиванов.

glebius, 20.07.2002