CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
17.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: Zenwalk :: Zenwalk: пакет недели

Catfish

Секция 1. Характеристика Catfish

  • Наименование: catfish
  • Категория: xap
  • Группа: инструменты
  • Назначение: оболочка для утилит поиска файлов
  • Описание: выступает как графический фронт-энд (основанный на GTK+) для различных движков поиска файлов; интерфейс предельно облегчённый, варианты конфигурации берутся из командной строки; в качестве бэк-эндов поддерживаются find, locate и slocate, tracker, strigi, beagle и doodle
  • URL:
    проект
    скачать
  • Команда: Кристиан Дайван (Christian Dywan) — автор, Фред Галузик (Fred Galusik) — майнтайнер
  • Лицензия:
  • Жесткие зависимости:
  • Мягкие зависимости:
  • Необходим для:
  • Сфера применения: поиск пользовательских файлов, исполняемых команд и т.д.
  • Потенциальные пользователи: все, нуждающиеся в поиске файлов :)
  • Доступность: имеются deb-пакеты, вероятно, есть и другие

Секция 2. Сочинение на тему Catfish

Название этой программы происходит от рыбы зубатки (catfish по-английски): видимо, подразумевается, что она как вцепится в файл — так ни за что его не выпустит. Хотя у «живой» зубатки зубы предназначены не для хватания, а для перетирания моллюсков.

Как было сказано в 1-й секции, Catfish — это графическая оболочка (фронт-энд) для различных программ, имеющих своим назначением поиск файлов. Программы эти столь же многочисленны, сколь разнообразны виды файлов, относимых в Unix-подобных системах к категории «обычных» (regular). Впрочем, Catfish успешно справляется и с поиском файлов иных типов -- каталогов, символических ссылок и файлов устройств (на поиске соккетов и именованных каналов я его не проверял за ненадобностью).

Для того, чтобы программа поиска файлов была задействована Catfish'ем, кроме формальной поддержки, необходимо её наличие в системе. Так, в случае с Zenwalk'ом по умолчанию мы не найдём ни beagle, ни tracker, ни прочих strigi с doodle. Так что всего остаётся три поисковых движка — find, locate и slocate. Впрочем, при ближайшем рассмотрении число их сводится к двум, ибо locate и slocate — один и тот же исполняемый файл, первый из которых представляет собой символическую ссылку на второй, в чём легко убедиться командой

$ ls -l /usr/bin/locate
lrwxrwxrwx 1 root root 7 2008-08-06 23:34 /usr/bin/locate -> slocate*

Пора, однако, начать знакомство с программой Catfish. Запускается она из главного меню (рабочего стола или панели задач): Applications -> Инструменты -> Catfish (в послдених на текущий момент снапшотах Zenwalk'а именно так, и скорее всего так будет в грядущем релизе). Кроме того, запуск программы Catfish может осуществляться через пункт File locator выпадающего меню иконки Terminal на Панели задач.

Каким бы образом мы ни запустили Catfish, перед нами предстаёт окно с заголовком вверху и статусной строкой внизу (рис. 1), пространство между которыми разделено на две панели.


Рис. 1. Catfish — общий вид

С правой панелью всё понятно — в ней мы со временем увидим результаты поиска. А вот с левой панелью давайте разбираться.

Поле ввода, озаглавленное catfish, предназначено для имени искомого файла или его маски: программа понимает регулярные выражения, о чём напоминает чекбокс Exact match непосредственно ниже поля ввода. Далее вниз мы видим чекбоксы Hidden files, включение которого позволяет производить поиск среди dot-файлов, Fulltext search, не активизированный по умолчанию (скоро станет ясно, почему) и Limit results, возволяющий при желании ограничить вывод результатов определённым числом файлов.

Ниже чекбоксов — панелька, озаглавленная File type. Тут нужно учесть, что расположенные на ней пиктограммы (Documents, Images, Music, Videos) — это не типы файлов в понимании Unix (обычные файлы, каталоги, симлинки, файлы устройств и так далее), а их разновидности, определяемые по т.н. "магической последовательности" командой file. Включение одного (или нескольких) типов файлов позволяет сузить круг поиска. Однако надо помнить, что в понятие Documents здесь попадают файлы в формате plain text, html и им подобные, но не документы OpenOffice или, скажем, Microsoft Word: с точки зрения команды file первые выглядят просто как некие абстрактные файлы данных, а doc-файлы, хотя ею и именуются, но никакой иной информации она из них извлечь не в состоянии.

Стоит еще отметить, что программа Catfish, как и практически любой иной фронт-энд, наиболее эффективно работает тогда, когда пользователь понимает смысл действий, стоящих за графическим интерфейсом, и осуществляемых программами — бэк-эндами. В этом мы скоро убедимся, когда дело дойдёт до метода поиска.

А пока у нас на очереди панелька с выпадающим меню Folder (так, под тлетворным влиянием Windows, обзываются каталоги). Назначение его то же,. что и панельки File type — сузить ареал поисков путем исключения из него тех ветвей файлового древа, где искомого файла заведомо не может быть. Ввиду тесной интеграции с файловым менеджером, каковым в нашем случае выступает Thunar, меню это повторяет закладки последнего — три обязательные (домашний каталог, рабочий стол и файловая система в целом), и те, которые были определены пользователем ранее (рис. 2).


Рис. 2. Выбор каталога для поиска

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

И, наконец, панелька Search method — также выпадающее меню, в котором выбирается программа, собственно и осуществляющая поиск (рис. 3). По умолчанию это find, но можно переключиться на использование locate или slocate (что, как уже говорилось, на самом деле одно и то же).


Рис. 3. Выбор программы поиска

Чтобы определиться, какую из двух возможных команд лучше использовать в каждом конкретном случае, надо хотя бы в общих чертах представить механизм их работы.

Команда find, вопреки своему названию, выполняет не поиск файлов, а рекурсивный обход дерева каталогов, начиная с заданного, отбирает из него файлы в соответствие с некоторыми заданными критериями и выполняет над ними определенные действия, например, выводит список отобранных файлов. Именно это действие выполняется командой find по умолчанию и используется наиболее часто.

Команда locate осуществляет поиск всех файлов и каталогов, содержащих компонент имени, указанный в качестве аргумента, и осуществляет вывод содержимого найденных каталогов. Поиск при этом выполняется не в файловом дереве, а в специальной базе данных — в Zenwalk'е это /var/lib/slocate/slocate.db (в других дистрибутивах или ОС она может находиться в иных подкаталогах ветви /var), и потому происходит много быстрее. Разница в скорости поиска между командами find и slocate особенно заметно, если вести его от корневого каталога.

Однако база данных для команды slocate нуждается в пополнении. Это делается с некоторой периодичностью или принудительно — командой /usr/bin/updatedb (от имени суперпользователя). Так что искомого файла в данный момент в базе может не оказаться, и тогда результат поиска этим методом будет отрицательным.

С другой стороны, при выборе метода поиска посредством slocate активизируется опция Fulltext search — правда, в чём выражается её действие, для меня так и осталось загадкой: поиск текстовых фрагментов в файлах я как-то привык выполнять командой grep.

Тем не менее, сказанного выше, думаю, достаточно, чтобы сделать осознанный выбор, каким именно методом поиска следует пользоваться в каждом конкретном случае. Сами же команды find и slocate заслуживают более подробного рассмотрения, каковое не замедлит последовать вскоре.





Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds