На главную Добавить в "Избранное" Связаться с нами
 
     
 
 

Введение Установка Linux Архитектура Linux Секреты работы Картинная галерея Статьи

 

 
   
 
 

Debian GNU/Linux : Paragon NTFS for Linux 5.x  : Panda Security for Linux Медиа-пак  : Gentoo Linux 2007.0 Xor Edition Nero Linux 3 : KNOPPIX : Fedora 10 : OpenSUSE 11.0 : ASPLinux 12 Standard : Свободный офис : ASPLinux 12 Express  Полный каталог

 
 

 

 

  Доступ к файлам  
 

Файловая система UNIX похожа на континент со множеством городов и, действительно, с адресами внутри городов. Каталоги и различные уровни подкаталогов можно сравнить с маршрутами между различными пунктами назначения, названия файлов - с адресами. Большое число путей и мест назначения может выглядеть пугающе, но благодаря регулярности и логичности, файловая система UNIX позволяет вам легко перемещаться из одного места в другое, если вы знаете несколько основополагающих принципов.

 

Будучи пользователями UNIX, все мы научились пользоваться основными командами файловой информации, как, например, ls с различными опциями. Мы знаем, как перемещаться между каталогами и копировать или перемещать файлы. Тем не менее, находить нужную информацию о файлах из всей массы информации не так-то легко. Нам необходимо создать инструментальные средства, которые используют древовидную структуру файлов в UNIX, чтобы находить то, что мы ищем, и, соответственно, выводить информацию о файлах на экран, печатать листинги содержимого файлов и т.д.

 

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

 

Комбинирование идей

 

Две концепции являются общими почти для всех файловых инструментальных средств. Первая - это идея рекурсивного поиска, которая означает, что некоторые команды системы UNIX (например, find) просматривают все файловое дерево, начиная с некоторой заданной начальной точки (или с текущего каталога). Если в данном каталоге встречается подкаталог, то его содержимое тоже исследуется - и так далее вниз к самому нижнему под-подкаталогу. Так проходятся маршруты ко всем файлам в целом дереве.

 

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

 

Вторая ключевая идея, связанная с полезными файловыми инструментальными средствами - это возможность соединения команд с программными каналами и управление потоком данных с помощью переадресации. Вероятно, вы уже встречались с подобными особенностями в вашей собственной работе с UNIX и эффективно их использовали. Возможно, вы еще не осознали, что соединение рекурсивного поиска, предоставляемого некоторыми стандартными командами, со специфическими функциями, предоставляемыми другими командами, позволяет нам создать команды, которые автоматически обходят обширные файловые деревья и извлекают нужную информацию. (В следующей главе мы выйдем за пределы распечатки и отображения информации на экран и научимся работать с файлами так, что мы сможем копировать, перемещать и восстанавливать их по мере надобности.)

 

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

 

Поиск файлов

 

Этот раздел посвящен поиску файлов, где бы они ни находились, выводу на экран выбранной информации и поиску символьных строк внутри файлов.

 

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

 

Другое инструментальное средство - это thead. Thead печатает несколько первых строк текстовых файлов, которые находятся в данном сегменте файлового дерева. Просматривая заголовок, т.е. первые несколько строк файла, вы можете получить достаточно информации, чтобы идентифицировать содержимое файла. При вызове thead вы можете явно задать каталог либо передать команде thead по конвейеру список полных имен файлов. Это делает команду thead фильтром - особым видом команд системы UNIX, который мы обсудим позже.

 

Следующее инструментальное средство - tgrep. Как следует из названия, это еще одна команда, связанная с файловым деревом, которая использует утилиту grep. Tgrep ищет символьные строки в каждом файле, который находится в данном сегменте файлового дерева. Tgrep также является фильтром, так что имена файлов можно передавать ей по конвейеру.

 

В нашем последнем проекте в этом разделе мы обратимся к использованию каталогов как средства "навигации". Сначала мы опишем основной алгоритм для утилиты, которая для каждого файла из заданного списка файлов проверяет, находится ли этот файл в каком-либо каталоге по указанному маршруту поиска. Затем мы построим paths - утилиту, которая дополняет функцию поиска полезными опциями.

 

Распечатка файла

 

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

 

Первые два командных файла являются пре- и постпроцессорами для команды ls. Команда lc выводит файловую информацию по столбцам, команда ll перечисляет файлы в длинном формате. Эти командные файлы дополнены опциями команды ls, чтобы сделать распечатки более информативными. Так как команда ls используется довольно часто, упаковка наиболее часто применяемых нажатий клавиш в командные файлы представляется целесообразной. Упаковка уменьшает количество постоянно набираемых символов и упрощает использование команд, исключает необходимость запоминания подробного синтаксиса.

 

Третье инструментальное средство - это kind. Kind - еще один командный файл препроцессорного типа, использующий команду UNIX file. Команда file читает указанный файл и затем сообщает, является ли этот файл текстовым, архивным или исполняемым. Поскольку распечатки команды file не выбирают файлы заданного типа, возникает необходимость в создании для этого специальной утилиты. Команда kind работает с распечаткой команды file. Kind выводит на экран имена файлов только заданного типа.

Еще один командный файл - m, который облегчает работу со стандартной командой more системы UNIX, уменьшая количество необходимых для запуска команды символов и упрощая интерфейс. Делается это без потери гибкости: так же, как вы можете использовать команду more для файла или передать команде more данные по программному каналу, вы можете сделать то же самое для m.

 

Следующий командный файл - это mmm. Он состоит из одной заготовленной командной строки для программы nroff системы UNIX. Существует много способов вызова команды nroff и множество различных опций к ней. Если же вы редко используете nroff, у вас могут возникнуть трудности в запоминании специфических опций, необходимых для вашей работы с командой. Эти проблемы отпадут, если у вас есть команда mmm. Определите опции, которые вы обычно используете, и введите их в командный файл mmm (о том, как это сделать практически, речь пойдет ниже). Теперь достаточно набрать mmm - и вы имеете возможность работать с вашей командой nroff.

 

Последняя утилита - pall. Pall обходит файловое дерево, ведя поиск файлов заданного типа, и готовит их к выводу на принтер. Команда pr системы UNIX используется для разбивки на страницы всех файлов вместе и включения заголовков. Эта команда предлагает на рассмотрение принтеру один большой файл и наиболее полезна в тех случаях, когда у вас имеется множество каталогов с текстовыми файлами или с исходными файлами программ.

 

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

 

Поиск файлов

tree - визуализация файлового дерева

 

    Имя:  TREE

tree - вывод на экран структуры файлового дерева

 

Название

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

 

Форма вызова

    tree [dir]

 

Пример вызова

    $ tree $HOME
 

Выводит структуру файлового дерева регистрационного каталога.

 

Текст программы

 

   1  :

   2  # @(#) tree v1.0  Visual display of a file tree Author: Russ Sage

   2а                   вывод на экран структуры файлового дерева

  

   4  if [ "$#" -gt 1 ]

   5    then echo "tree: wrong arg count">&2

   6         echo "usage: tree [dir]"    >&2

   7         exit 2

   8  fi

   9  if [ "$#" -eq 1 ]

   10 then if [ ! -d $1 ]

   11   then echo "$0: $1 not a directory">&2

   12        echo "usage: tree [dir]"     >&2

   13        exit 2

   14         fi

   15 fi

  

   17 find ${1:-.} -print | sort | sed -e "1p" -e "1d"          \

   18                                 -e "s|[^/]*/|      /|g"  \

   19                                 -e "s|[^ */|/|"          \

   20                                 -e "s|/\([^/]*\)$|\1|"

 

   
 
 
Картинная галерея
Галерея eLinux : Последние добавления : Последние добавления : Часто просматриваемые : Поиск по галерее
Linux введение : Обучение Linux : Установка Linux : Взаимодействие в сети : Команды Linux : Архитектура Linux : Работа с Linux
Секреты работы : Временные операции : Переферия
 
 

 

 
   
 
 

385 руб.

Антивирус Dr.Web Mail Gateway

Dr.Web Mail Gateway – комплексное модульное решение для обработки и фильтрации входящего и исходящего трафика на серверах под управлением Unix (Linux/FreeBSD/Solaris(x86). 

Список версий:

Антивирус Dr.Web Mail Gateway


570 руб.

FastScript

FastScript —библиотека для выполнения скриптов. Она будет полезна разработчикам, желающим добавить возможности исполнения скриптовых программ в свои проекты. FastScript написан полностью на 100% Object Pascal и может быть установлен в Borland Delphi 4-2007, Borland C++Builder 4-6, Borland Kylix 1-3 и Lazarus. 

Список версий:

FastScript


Полный каталог

 
 

 

 
   
 
   
 

 

 

 

 

Все права защищены.

Копирование запрещено.

Rambler's Top100

Дизайн:

ССтудия Onta.ru