Атрибути (Attributes)

Атрибути – це поля даних, які належать файлу, але не є його частиною. Вони не враховуються при обчисленні розміру файлу, атрибути можна копіювати або змінити, не торкаючись самого файлу. Система використовує атрибути для зберігання, наприклад, розміру файлу, типу файлу або дати останньої модифікації. Це схоже на інші операційні системи та їхні файлові системи.

Різниця полягає в тому, що Ви можете додати будь-який атрибут до будь-якого файлу та відобразити його або зробити доступним для редагування у вікні Tracker. Для цього потрібно: вибрати тип файлу, до якого додається атрибут; визначити тип атрибута який додається (наприклад, рядок, ціле число або час); дати атрибуту назву та опис.

Сам файл взагалі може бути пустим, не містити ніякої інформації. Подивіться, наприклад, на ці файли контактів:

people.png

Як Ви бачите, файл має нульовий розмір разом з атрибутами а атрибут E-mail контакту «Школа економіки» редагується прямо у вікні Tracker.

Якщо Ви проіндексуєте атрибути, як це робиться за замовчуванням для контактів, електронної пошти або аудіофайлів, їх також можна буде шукати за допомогою швидкої системи запитів Haiku.

index Робота з атрибутами у програмі Tracker

Атрибути відображаються подібно до бази даних або електронної таблиці. У програмі Tracker Ви можете вибрати, які атрибути відображати (стовпці) і відповідно їх сортувати список файлів (рядки).

Для цього відкрийте вікно Tracker, клікніть по пункту меню Атрибути і виберіть атрибути, які Ви хочете відобразити. Або просто зробіть правий клік на заголовку стовпчика (колонки) і позначте пункти в контекстному меню. Ви можете переставляти стовпчики місцями простим перетягуванням заголовка стовпчика. Переміщення стовпчика з вікна – це швидкий спосіб позбутися непотрібних Вам колонок.

Подвійний клік миші на лінії між двома атрибутами у заголовку автоматично змінить розмір стовпчика до оптимальної ширини.

Клік на заголовку стовпчика змінить порядок сортування з висхідного на низхідний. Ви можете встановити вторинний порядок сортування, утримуючи клавішу SHIFT під час натискання на заголовку стовпчика. Наприклад, можна сортувати файли контактів за компанією, а в межах цього порядку сортувати за іменами контактів. Вторинний порядок сортування позначається світлішим індикатором поруч із заголовком.

Редагування атрибутів є такою ж простою операцією, як і перейменування файлу: клікніть на атрибуті або натисніть ALT E. Щоб переходити між атрибутами використовуйте клавіші TAB і SHIFT TAB. Клавіша ESC дозволить вийти з режиму редагування без збереження змін.

index Робота з атрибутами у програмі Terminal (Термінал)

Якщо Ви віддаєте перевагу використанню командного рядка або плануєте працювати з великою кількістю файлів за допомогою сценаріїв, є кілька команд для управління атрибутами з Терміналу.

Більш детальну інформацію про ці команди та їхні опції можна отримати, ввівши назву команди з параметром «-h» або «--help».

index listattr

listattr – показує список атрибутів файлу, але за замовчуванням не показує їхній вміст. Для виводу значень атрибутів потрібно додати параметр «-l» або «--long».

usage: listattr [-l|--long] 'filename' ['filename' ...]
  -l, --long  Shows the attribute contents as well.

З нашого прикладу на скриншоті вище:

~/people> listattr -l Джон\ До
File: Джон До
        Type       Size  Name                                Contents
-------------------------------------------------------------------------------
 MIME String        21  "BEOS:TYPE"                         application/x-person
        Text        14  "META:name"                         Джон До
        Text         5  "META:nickname"                     dodo
        Text        25  "META:company"                      Рога и Копыта
        Text        26  "META:address"                      ул. Заречная 24
        Text         9  "META:city"                         Київ
        Text        17  "META:state"                        Київська
        Text         6  "META:zip"                          03191
        Text        15  "META:country"                      Україна
        Text        21  "META:email"                        john.doe@example.com
        Text        13  "META:hphone"                       044 555 1111
        Text        17  "META:mphone"                       +38 044 555 1112
        Text        13  "META:wphone"                       044 555 1113
        Text        13  "META:fax"                          044 555 1114
        Text        13  "META:url"                          haiku-os.org
        Text         1  "META:group"

229 bytes total in attributes.
~/people>

Окрім усіх атрибутів «META:*», які містять інформацію про контакт, є два системні атрибути:

Зверніть увагу на зворотну косу риску (бекслеш) після «Джон». У Терміналі Ви повинні «екранувати» спеціальні символи, такі як '"*\\$?!. Пробіл між «Джон» і «До» також є одним із них. Тому бекслеш насправді стоїть перед символом пробілу, а не після «Джон».

index catattr

catattr – виводить вміст вказаного атрибуту файлу.

usage: catattr [-P] [--raw|-r] <attribute-name> <file1> [<file2>...]
  -P            Don't resolve links
  --raw,-r      Get the raw data of attributes
  --data,-d     Show the attribute data only

Знову з нашого прикладу:

~/people> catattr META:city Джон\ До
Джон До : string : Київ

index addattr

addattr – додає атрибут до файлу та/або присвоює йому значення.

usage: addattr [-t type|-c code] [ -P ] attr value file1 [file2...]
   or: addattr [-f value-from-file] [-t type|-c code] [ -P ] attr
file1 [file2...]

        -P : Don't resolve links
        The '-t' and '-c' options are alternatives; use one or the other.
        type is one of:
                string, mime, int, int32, uint32, llong, int64, uint64,
                float, double, bool, icon, time, raw
                or a numeric value (ie. 0x1234, 42, ...),
                or an escape-quoted type code, eg. \'MICN\'
        The default is "string"
        code is a four-char type ID (eg. MICN)

Припустимо, Джон влаштувався на роботу в компанію Haiku, Inc., тепер Ви можете змінити значення атрибуту «Компанія» на нове:

~/people> addattr -t string META:company Haiku,\ Inc. Джон\ До

index rmattr

rmattr – повністю видаляє атрибут з файлу.

usage: rmattr [-P] [-p] attr filename1 [filename2...]
        'attr' is the name of an attribute of the file
        -P : Don't resolve links
        If '-p' is specified, 'attr' is regarded as a pattern.

Хоча з практичної точки зору було б достатньо просто не заповнювати атрибут «Факс», Ви можете повністю видалити його з файлу Джона, ввівши:

 ~/people> rmattr META:fax Джон\ До

index copyattr

copyattr – копіює атрибути з одного або декількох файлів до іншого. За замовчуванням, власне вміст файлу не копіюється.

Usage: copyattr <options> <source> [ ... ] <destination>

Якщо Ви хочете копіювати не тільки атрибути але і вміст файлу, слід додати параметр «-d» або «--data».
Довідку по використанню програми завжди можна отримати, якщо виконати програму з параметром «-h» або «--help».