Кое-что об исключениях
Итак, типичная форма POSIX-команды в обобщенном виде выглядит следующим образом:
$ command -[options] [arguments]
Из этого правила выбиваются немногочисленные, но весьма полезные и часто используемые команды. Однако и для таких команд с нестандартным синтаксисом устанавливаются те же компоненты -- имя, опции, аргументы, хотя по ряду причин (в том числе исторических) порядок их может меняться.
Это можно проиллюстрировать на примере полезнейшей команды find
, предназначенной для поиска файлов (и не только для этого -- она являет собой почти универсальное орудие в деле всякого рода файловых манипуляций, почему и сподобилась отдельного описания). В типичной своей форме она выглядит примерно следующим образом:
$ find dir -option1 value -option2 [value]
Здесь dir
-- каталог, в котором выполняется поиск, -- может рассматриваться в качестве аргумента команды. Опция -option1
(обратим внимание, что здесь, не смотря на многосимвольность опций, они предваряются единичным символом дефиса) и ее значение value
определяют критерий поиска, например, -name filename
-- поиск файла с указанным именем, а опция -option2
предписывает, что же делать с найденным файлом (файлами), например, -print
-- вывести его имя на экран. Причем опция действия также может иметь значение. Например, значением опции -exec
будет имя команды, вызываемой для обработки найденного файла (файлов). Так, директива вида
$ find ~/ -name *.tar -exec tar xf {} ;
требует отыскать в домашнем каталоге (~/
), выступающем в качестве аргумента, файлы, имя которых (первая опция -- критерия поиска) соответствует шаблону *.tar
(значение первой опции), и выполнить (вторая опция -- действия) в их отношении команду tar
с собственными опциями, обеспечивающими распаковку архивов (значение второй опции). Интересно, что в этом контексте в качестве значений второй опции команды find
выступает не только внешняя команда, но и все относящиеся к ней опции.
В последнем примере имеется несколько символов, смысл которых может показаться непонятным. Надеюсь, он прояснится достаточно скоро -- в параграфе о регулярных выражениях.
. .