E. Работа с файлами в "интерфейсе" командной строки операционной системы.
E.1. Каталоги
Содержание
E.1.1. Для чего нужны каталоги?
E.1.2. Правильное использование каталогов
E.1.3. Правила работы с каталогами.
E.1.4. Просмотр оглавления каталога и имени текущего каталога.
При использовании жестких дисков может возникнуть ситуация, когда создается так много файлов, что возникает затруднения с их подбором и систематизацией [Эско Валтанен]. Этой ситуации не возникало при использовании старых мэйнфреймов, информация для которых хранилась на перфокартах, бумажных и магнитных лентах, и на других съемных носителях. Не было ее и в операционной системе CP/M и ее "наследнице" MS-DOS v. 1.0, данные к которым хранились на тех же съемных носителях - дискетах.
Ситуация начала меняться с появлением жестких дисков. Первоначально они имели небольшой объем - всего 10 - 20 объемов дискет. Однако компьютеры с жестким диском были очень дорогими, и поэтому они использовались несколькими пользователями одновременно (вернее, попеременно). Так как пользователям могла понадобиться работа с файлами с одинаковыми именами, но разным по содержанию, логично было файлы каждого пользователя поместить в одинаковый каталог, или директорию. В MS-DOS каталоги появились начиная с версии 2.0.
Скоро выяснилось, что каталоги можно использовать не только для разделения дискового пространства между пользователями, Оказалось, что с помощью директорий можно систематизировать данные на жестком диске и сменных носителях. Так появилось второе название директории - каталог.
Чтобы не запутаться и быстро находить все свои файлы, при построении структуры каталогов (или дерева каталогов) необходимо руководствоваться следующими правилами:
1. Разнородную информацию размещайте в разных, а однородную - в одном каталоге.
2. Разделяйте программы и данные. Программные пакеты храните в отдельных корневых подкаталогах, а данные пользователя - в каталогах типа USER. В этом отношении идеальны операционные системы Microsoft Windows 95/98/2000/NT4. В них все программные пакеты хранятся в поддиректориях корневой директории "\Program Files", а данные пользователя - в каталоге "\My documents" (или "\Мои документы" в русифицированных версиях).
3. Разделяйте данные разных пользователей, если это не сделано операционной системой (типа Microsoft Windows 2000/NT4). Для этого в каталоге данных (типа \USER или "\My documents") создайте дополнительные подкаталоги (\Vasya, \Yuri, \Inna и т.д.) Однако наилучшем именем будет сокращение из первых букв имени, фамилии и отчества пользователя (типа \YuAD, \IAB и т.д.).
В операционных системах Microsoft Windows 2000/NT4 в качестве папки данных по-умолчанию выбирается папка \Privacy (\Личная), расположенная в системных областях операционной системы и имеющая уникальный путь для каждого пользователя.
4. В своих директориях структурируйте данные своих проектов. Например, создавайте поддиректории \Otchet, \Games, \Private, \Work, \Misc, \Util и т.п.
Как Вы узнаете из последующих выпусков, каталог - это разновидность файла. Поэтому к ним применяются те же операции что и для файлов. Однако у каталогов есть своя специфика. В чем она заключается?
1. Как правило, удаленный каталог почти невозможно восстановить. Восстановление каталога в MS-DOS возможно с помощью утилиты DiskEdit.
2. Каталоги нельзя разрезать и объединять (кроме Microsoft Windows 2000 - см. описание ее файловых систем.)
3. Во многих операционных системах переместить или переименовать каталоги можно, только создав новый, переписать данные из старого каталога и лишь затем удалив старый.
4. Каталог можно открыть. При этом открытый каталог становится текущим.
5. У любого каталога можно прочитать его оглавление - список файлов и подкаталогов, находящихся в нем.
6. Все действия по-умолчанию перенаправляются в текущий каталог. В любой момент времени существует единственный текущий каталог.
7. Каталог можно закрыть, только перейдя в другой каталог.
8. У каждого каталога, кроме корневого каталога, обязательно есть родительский каталог.
Эти особенности определяют возможности операций с каталогами. И далее автор рассматривает операции с каталогами в различных операционных системах с учетом этих особенностей.
Прежде чем начать работу с файлами, необходимо убедиться, что эти файлы находятся на компьютере. Для этого, как минимум, надо просмотреть списки файлов в различных местах (каталогах, устройствах) компьютера. В операционных оболочках (типа Windows) это делается легко - как правило, все исполняемые программы присутствуют (в виде пиктограмм) на экране компьютера. Для их вызова необходимо дважды щелкнуть левой клавишей мыши, когда курсор ее установлен на этой иконе (пиктограмме). Если же по каким-то причинам нужная икона не находится на экране (или на панели задач, окнах менеджера программ), то ее можно найти, просматривая последовательно дерево каталогов и их содержимое.
Стандартные средства MS-DOS и UNIX не предоставляют такой сервис. Но, используя командную строку, внутренние и внешние программы и программные средства (как, например, набор внешних команд DOS и UNIX, или пакет Norton Utilites для MS-DOS), можно организовать поиск файлов и каталогов в компьютере, просматривание дерева каталогов, переход в любой каталог и просмотр содержимого как текущего, так и любого другого каталога. Таким образом, даже с этими простыми средствами можно работать на компьютере и использовать при этом все преимущества файловой системы.
Здесь рассматриваются программы просмотра содержимого каталога (синонимы - выдача листинга, списка, оглавления каталога), форматы выдачи этих листингов для операционных систем MS-DOS и UNIX. В обеих операционных системах листинг может выдаваться в полном, кратком и, возможно, некоторых других форматах.
Безусловно, операция просмотра содержимого каталога является наиболее часто используемой и наиболее важной операцией с каталогами. При выполнении этой операции решаются следующие задачи:
1. Наглядно представляется содержимое каталогов.
2. Находятся файлы, необходимые для работы пользователя с программами.
3. Происходит "ориентация" пользователя в дереве каталогов.
При выводе оглавления каталога его можно сформировать:
- по имени
- по типу файлов ( расширению)
- по дате создания или модификации
- по дате последнего обращения к файлу
- по степени сжатия
- по полному имени
- и по другим признакам.
При выводе можно также указать, файлы с какими установленными или сброшенными атрибутами должны отображаться, а какие - нет. Для DOS это позволяет, например, выводить только подкаталоги, или только файлы, и т.д.
Замечания по сортировке.
Обычно оглавление выдается в неотсортированном виде, исходя из очередности нахождения файлов или каталогов в директории.При включении сортировки по имени файла происходит вывод оглавления каталога в следующем порядке:
1. Сначала выводятся каталоги, упорядоченные по имени.
2. Потом выводятся файлы, упорядоченные по имени.
3. Далее, если требуется, происходит упорядочение по типу файлов.
Этот тип сортировки выбирается по-умолчанию во многих операционных системах.
Если же нужен другой порядок сортировки (по другому ключу), то файлы будут отображаться следующим образом:
1. Вначале выводятся каталоги, отсортированные по некоторому ключу.
2. Потом идут файлы, отсортированные по заданному ключу.
3. Затем, если требуется, файлы внутри заданного ключа сортируются по имени файла.
Следует отметить, что ключи сортировки файлов и подкаталогов могут не совпадать. В частности, если файлы сортируются по убыванию размера, то каталоги будут все равно сортироваться по их имени. Это связано с особенностями реализации механизма определения размера каталогов.
В разных операционных системах для просмотра содержимого каталога используются разные программы. Рассмотрим их по-подробнее:
В командной строке для всех операционных систем Microsoft служит команда Dir. Ее синтаксис:
dir [<опции>] {<путь>]|{<имя_файла>}
Параметры команды следующие:
<диск>:\<путь>\ указывают имена диска (устройства) и каталога, листинг которого желательно получить. <имя файла> - это указание имени файла (или шаблона группы файлов), характеристики которых нужно просмотреть. Если опущено имя файла или шаблон группы файлов, то выводится листинг всех файлов в каталоге (как при шаблоне *.*).
Если опущено имя устройства, то подразумевается текущий каталог указанного устройства.
Примеры:
dir *.com - список всех файлов с расширением .com текущего каталога.
dir \USERS\n*.* - список всех файлов, начинающихся с буквы "n", в каталоге USERS текущего диска.
dir a: - вывод оглавления текущего каталога диска А.
dir a:\ - вывод оглавления корневого каталога диска А.
Команда dir без параметров выводит содержимое текущего каталога с опциями выбора и сортировки по-умолчанию.
В именах файла можно использовать шаблоны. в качестве имен допускаются только краткие имена.
Пример:
dir myfile.doc
- выводит имя myfile.doc если он есть в каталоге, или пустой каталог, если этот файл не содержится в текущем каталоге.
dir myfile.*
dir myfile
- выводит все файлы с именем myfile и любым расширением, если они есть в текущем каталоге.
dir *.txt
dir .txt
- выводит все файлы с расширением txt, находящиеся в текущем каталоге.
dir ?.txt ??.txt
- выводит все файлы с расширением txt в текущем каталоге, имеющих имя в один или два символа.
Вместо имен фалов допускается указывать путь к каталогу, причем только один.
Пример:
dir a:
-выводит оглавление текущего каталога диска a:
dir \
- выводит оглавление корневого каталога текущего диска.
dir a:\
- выводит оглавление корневого каталога диска a:
dir \util\tmp\
- выводит оглавление подкаталога tmp каталога util текущего диска, начиная с корневого каталога.
dir util\tmp
- выводит оглавление подкаталога tmp каталога util текущего диска, начиная с текущего каталога.
dir c:\dos\sys\
- выводится оглавление каталога C:\dos\sys\ (явное указание всех параметров).
Допускается также такая конструкция:
dir c:\dos\*.com
- выводятся все файлы с расширением com директории dos диска c:, начиная с текущей директории.
Опции команды DIR:
/D - вывод содержимого каталога постранично. После заполнения одной страницы листинга каталога (страница - экран DOS) система будет ждать нажатия любой клавиши для вывода очередной страницы листинга.
/W - вывод листинга в кратком формате.
/A:<атрибуты> - задание режима вывода на дисплей толь тех файлов, атрибуты которых совпадают с указанными в команде DIR.
Конкретные значения атрибутов смотри в описании MS-DOS. По умолчанию выводится листинг всех файлов, кроме имеющих атрибуты "скрытый" и "системный".
Пользователю необходимо знать, что эта опция с атрибутом D (/A:D) выведет только подкаталоги данного каталога, а опция с атрибутом -D - только файлы данного каталога (/A:-D).
/O:<тип сортировки> - Задание способа сортировки имен файлов и каталогов при их выводе на экран дисплея.
Если ключ опущен, имена файлов и каталогов выводятся в порядке, в котором они записаны в каталоге.
Типы сортировки следующие:
N - сортировка по именам файлов в алфавитном порядке;
-N - сортировка по именам файлов в порядке, обратном алфавитному;
E - сортировка по расширениям файлов в алфавитном порядке;
-E - сортировка файлов по расширению в порядке, обратном алфавитному;
D - сортировка по дате и времени создания/модификации файлов в порядке их возрастания;
-D - сортировка по дате и времени создания/модификации файлов в порядке их убывания;
S - сортировка файлов по возрастанию их размера;
-S - сортировка файлов по убыванию их размеров;
G - подкаталоги выводятся перед файлами;
-G - подкаталоги выводятся после файлов;
C - сортировка файлов по возрастанию коэффициента сжатия (только на сжатых дисках);
-С - сортировка файлов по убыванию коэффициента сжатия (только на сжатых дисках);
А - сортировка по дате и времени последнего доступа к файлу в возрастающем порядке (для MS-DOS 7.0);
-А - то же самое, но в убывающем порядке (для MS-DOS 7.0).
Буквы можно комбинировать, например,
dir /O:GEN - выводит вначале имена каталогов, потом имена файлов, упорядоченных в алфавитном порядке сначала по расширениям, а затем (при одинаковом расширении) по именам. На мой взгляд, это самый удобный способ сортировки.
dir /O:-SC-G - выводит вначале листинг файлов по убыванию размера, Для файлов с одинаковым размером - по убыванию степени сжатия, после - подкаталоги.
Команда dir /O соответствует dir /O:GNE.
Опции:
/S - выводится оглавление не только для указанного каталога, но и для всех его подкаталогов.
(В пакете Norton Utilities есть программа, реализующая конструкцию dir/S. Она называется fl. Как ее использовать - смотри описание пакета Norton Utilities или выполните команду fl / ?).
/C или /H - выводится информация о степени сжатия файлов на сжатом диске (/C выдает коэффициент сжатия по размеру кластера на несжатом диске). Эти опции игнорируются при использовании опций /B и /W.
Остальные ключи смотри в описании команды DIR MS-DOS или подайте команду:
dir /?
Возможна также установка ключей "по умолчанию" при вызове команды DIR. В этом случае эти ключи не придется набирать на клавиатуре - это сделает операционная система. Опции задаются переменной окружения dircmd. Ее формат:
set dircmd=<опции>
Например,
set DIRCMD=/O:GEN /W
Отменить эту переменную окружения можно набрав в командной строке MS-DOS (а не оболочки типа Norton Commander).
set dircmd
При этом не сотрите других переменных MS-DOS!
Формат выдачи оглавления каталога.
В любой операционной системе и файловой оболочке оглавление каталога может быть выдано в полной, краткой и, возможно, некоторых других форматах.
Рис. E.1. Просмотр оглавления каталога в MS-DOS (полный формат)
Рис. E.2. Просмотр оглавления каталога в командной строке Windows 98 (полный формат)
Рис. E.3. Просмотр оглавления каталога в MS-DOS (краткий формат)
В кратком формате MS-DOS выдает следующую информацию (сверху вниз):
1. Метка диска;
2. Серийный номер диска;
3. Имя каталога;
4. В пять столбцов выводятся краткие имена файлов и каталогов, упорядоченных согласно опциям просмотра, и только те, которые соответствуют указанному шаблону. При этом имена подкаталогов заключаются в квадратные скобки, например, [DOS], и обязательно присутствуют обозначения текущего [.] и родительского [..] каталогов. Дополнительные атрибуты файлов не выводятся (порядок вывода файлов и каталогов в кратком формате следующий: слева направо и сверху вниз, то есть построчно).
5. Итоговая информация о файлах и каталогах (число файлов, подкаталогов, занимаемое ими место на устройстве).
6. Количество свободного места для файлов на устройстве.
(Для примера просто дайте компьютеру команду dir / w).
В полном формате листинга каталога MS-DOS изменяется только вид листинга файла (пункт 4). При этом сначала выводятся символы текущего каталога "." и родительского "..". Далее идут имена файлов и подкаталогов вместе с атрибутами, упорядоченные сверху вниз (по столбцам). Порядок появления атрибутов (столбцов) следующий:
а) Краткое имя файла или подкаталога (прописными буквами).
б) Расширение (тип) файла или подкаталога, если оно есть (прописными буквами).
в) Признак подкаталога <DIR>. Эта комбинация выводится только после имени подкаталога. После имени файла эта позиция не заполняется.
г) Размер файла в байтах. Эта позиция не заполняется в случае каталога.
д) Дата создания файла или подкаталога, или дата последней модификации файла.
е) Время создания файла или подкаталога, или время последней модификации файла.
ж) Длинное имя файла (для MS-DOS 7.0). Имя и расширение выводятся с сохранением регистра символов (то есть прописными и строчными буквами).
Полный формат вывода оглавления каталога принят в MS-DOS по-умолчанию.
В UNIX для выдачи содержимого каталога используется команда ls.
В UNIX формат команды ls следующий:
ls [опции][<путь>][<имя файла>]
где <путь> - указание имени каталога, листинг которого следует произвести.
<имя файла> - имя файла (или шаблон группы файлов), список которого хотелось бы просмотреть.
Если не указан путь, то подразумевается текущий каталог.
Если не указано имя файла (или шаблон), подразумеваются все файлы каталога.
Опции:
-l - листинг файлов в полном формате.
-F - имена файлов и каталогов различаются.
-а - вывод в листинге всех файлов и каталогов, а не только тех, к которым есть доступ.
-d - вывод имени каталога.
Возможны и другие опции. Чтобы узнать их, смотри описание своей версии UNIX или выполните команду
man ls
Комбинация опций:
-al - вывод в листинге всех файлов в полном формате.
-ld - просмотр атрибутов (полный листинг) каталогов.
Пример:
ls -ld thank you просмотр с атрибутами и правами доступа директорий или файлов с именами thank и you.
ls -l myfile выдает атрибуты и права доступа файла myfile.
Как ясно из этого описания, команда ls не выдает полного имени текущего каталога. Это делается командой pwd. Команда pwd выводит в стандартный поток вывода полное имя текущего каталога.
В системе Linux (версия UNIX) имеется набор утилит mtools, которые обеспечивают доступ к дискетам, отформатированным в MS-DOS. Для получения списка файлов, расположенных в каталогах на этих дискетах, в Linux необходимо набрать команду mdir. Формат ее похож на формат команды dir в MS-DOS, а правила написания устройств, путей и шаблонов в параметрах команд mtools, относящихся к дискете, соответствуют правилам, принятым в MS-DOS. Более подробно о формате и опциях программы mdir смотри руководство соответствующей версии Linux, или нужно выполнить команду man mdir.
Формат выдачи оглавления каталога
В UNIX оглавление каталога в кратком формате состоит из последовательности имен файлов и подкаталогов, содержащихся в нем, без атрибутов и другой дополнительной информации, расположенных построчно и разделенных между собой пробелами. Символы родительского и текущего каталога не выводятся.
Рис. E.4. Просмотр краткого оглавления каталогов в UNIX
(Для примера наберите в UNIX команду ls).
По-умолчанию имена файлов и подкаталогов на выводе оглавления в UNIX не различаются. Для того, чтобы система при выводе делала различие между именами файлов и каталогов, используется опция -F (пример: ls -F). Тогда после вывода имени подкаталога следом выводится дробная черта "/". Также по умолчанию не выводятся недоступные пользователю UNIX файлы. Чтобы их тоже вывести надо использовать опцию -а.
Полный формат вывода оглавления каталога принят в UNIX следующий: построчно выводятся имена файлов с атрибутами, записанные по столбцам.
Рис. E.5. Просмотр полного оглавления каталогов в UNIX
В столбце указываются:
а) Тип файла ("-"- это файл, "d"- директория).
б) Права доступа к файлу (если стоит "-", то атрибут не установлен).
Первые три атрибута указывают права владельца:
r - разрешить чтение файла;
w - разрешить запись в файл;
x - разрешить запуск на выполнение файла.
Вторые три атрибута указывают права доступа членов группы: r - чтение, w - запись, x - выполнение.
Третьи три атрибута указывают права доступа к файлам всех остальных пользователей UNIX: r - чтение, w - запись, x - выполнение.
Право на чтение для каталога позволяет получать список файлов, находящихся в данном каталоге.
Право на выполнение позволяет переходить в этот каталог. Право на запись позволяет создавать и удалять файлы в данном каталоге.
в) Имя владельца данного файла.
г) Имя группы пользователей данного файла.
д) Размер файла в байтах.
е) Дата и время создания и/или последнего изменения.
ж) Имя файла.
В операционных системах UNIX, в отличие от операционных системах Microsoft, имя текущего каталога не выводится в его оглавлении и часто не выводится в приглашении операционной системы. Для определения имени текущего каталога (точнее, имени и полного пути) служит команда pwd.
Ее формат прост - необходимо набрать в командной строке слово pwd.
Назад |
Содержание |
Вперед