UNIX — универсальная среда программирования | страница 18



>$

Строка >total 2 указывает число занятых блоков на диске: блок обычно содержит 512 или 1024 символа. Строка >-rw-r--r-- показывает, кто имеет право читать из файла и писать в него: в данном случае владелец (>you) может и читать, и писать, но другие могут только читать. За ней следует 1 — число связей файла; забудем о нем до гл. 2. Строка >you содержит имя владельца файла, т.е. пользователя, создавшего его. Число символов в соответствующих файлах (17 и 18) совпадает с тем, что сообщил редактор >ed. Дата и время соответствуют последнему изменению файла.

Возможные аргументы (в дальнейшем будем именовать их флагами) могут быть сгруппированы: >ls -lt дает ту же информацию, но отсортированную в определенном порядке, начиная с файлов, измененных последними. Флаг >-r показывает дату и время последнего обращения к файлу; >ls -lut представляет список файлов по порядку их использования, начиная с наиболее позднего. Флаг >-r меняет порядок в списке на обратный, так что >ls -rt перечисляет файлы, начиная с самых старых. Можно также указать имена интересующих вас файлов, тогда команда >ls выдаст информацию только о них:

>$ ls -l junk

>-rw-r--r-- 1 you 17 Sep 26 16:25

>$

Строки, следующие за именем команды в командной строке, такие, как >-l и >junk в приведенном примере, называются аргументами команды. Аргументы обычно бывают флагами или именами файлов, используемыми в команде.

Обозначение флага с помощью знака "дефис" и одной буквы, например >-l, является весьма распространенным. В общем случае, если команда имеет возможные аргументы, то они должны предшествовать аргументам-именам файлов, но появляться могут в любом порядке. Однако система UNIX "капризна" при разборе многочисленных флагов. Например, в стандартной седьмой версии системы команда >ls не принимает строку

>$ ls -l-t Не работает в седьмой версии

в качестве синонима для >ls -lt, тогда как другие команды требуют, чтобы флаги были разделены.

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