Perl для системного администрирования


Различия файловых систем - часть 5


Каждый файл в файловой системе HFS также имеет два специальных тега:

creator (создатель) и type (тип), позволяющие операционной

системе идентифицировать, каким приложением был создан файл и какого он типа. Эти теги играют ту же роль, что и расширения, используемые в файловых системах FAT (например .doc или .ехе). Позже в этой главе мы увидим, как применять теги тип/создатель в собственных целях.

Сводка различий файловых систем

Ниже представлены те различия, о которых мы только что говорили, и некоторые другие интересные факты (табл. 2.1).

Таблица 2.1. Сравнение файловых систем

OS и файловая система

Разде

литель пути

Чувстви

тельность к регистру

Длина

имени

файла

Формат абсолют

ного пути

Формат относи

тельного пути

Уникальные возмож

ности

Unix (файловая система

-

Berkeley Fast File System и другие)

/

Да

В зависимости от операционной системы

/dir/file

dir/file

Дополнения в зависимости от операционной системы

MacOS (HFS)

:

Да

31 символ (или 255

при использовании HFS+)

volume:

dir:file

:dir:file

Потоки данных/

ресурсов, атрибуты создатель/

тип

WinNT/2000 (NTFS)

\

Нет

255 символов

Drive:\

dir\file

dir\file

ACL, атрибуты, Unicode в именах файлов

DOS (BASIC FAT)

\

Нет

8.3

Drive:\

dir\file

dir\file

Атрибуты

Учет различий файловых систем в Perl

Perl может помочь создавать программы, в которых учитывается большинство особенностей файловых систем. В его состав входит модуль File::Spec, позволяющий нивелировать некоторые различия между файловыми системами. Например, если мы передаем компоненты пути методу catfile таким образом:

use File: :Spec

Path = File: : Spec -> cat r iie( "how1 . "iocs" ' г eSi;i:C doc")

то в Windows NT/2000 переменная $path будет иметь значение home\cindy\docs\resume. doc, тогда как в Unix она будет иметь значение cindy/docs/resume.doc и т. д. В модуле File: :Spec также есть методы, например curdir и updir, возвращающие обозначения для текущего и родительского каталогов (например « » и « »). Методы этого модуля предоставляют абстрактный способ построения и манипулирования именами путей. Если вы предпочитаете не использовать объектно-ориентированный синтаксис, то модуль File: :Spec: : Functions предоставляет более короткий путь к методам из File: Spec.




Начало  Назад  Вперед