User Guide

# Attribute

Attribute sind Datenfelder, die zu einer Datei gehören ohne dabei ein Teil von ihr zu sein. So werden sie nicht zur Dateigröße dazugerechnet und können kopiert oder geändert werden ohne die Datei selbst anzufassen. Das System benutzt diese Attribute, um zum Beispiel Größe, Dateityp oder das Datum der letzten Änderung zu speichern. Soweit ist das ähnlich wie bei anderen Betriebssystemen und deren Dateisystem.

Der Unterschied liegt darin, dass jede Art von Attribut an jedwede Datei gehängt werden kann und es in einem Tracker-Fenster dargestellt oder auch bearbeitet werden kann. Dazu muss nur die Art des Attributs definiert werden, das einem Dateityp hinzugefügt werden soll - zum Beispiel Text, Zahl oder Zeit - und ein Name und eine Beschreibung vergeben werden.

Die Datei selbst muss dabei nicht mal einen Inhalt haben. People Dateien sind ein Beispiel dafür:

Wie man sieht, sind das alle 0 byte große Dateien mit angehängten Attributen. Das E-mail Attribut von "John Nox" wird gerade direkt im Tracker bearbeitet.

Werden diese Attribute indiziert, wie das mit People, Email oder Audio Dateien von Hause aus der Fall ist, kann man sie mit Haikus schnellem Query System durchsuchen.

## Attribute im Tracker

Attribute werden ähnlich wie in einer Datenbank oder Tabellenkalkulation dargestellt. Im Tracker kann ausgewählt werden, welche Attribute gezeigt werden sollen (Spalten), und die Dateiliste (Reihen) anschließend entsprechend sortiert werden.

Dazu öffnet man ein Tracker-Fenster und wählt aus dem Menü Attribute die darzustellenden Attribute aus. Oder man führt einen Rechtsklick auf einen Spaltentitel aus und wählt die entsprechenden Einträge aus dem Kontextmenü. Die Spalten können durch Ziehen der Spaltentitel verschoben werden. Um Spalten, die man nicht braucht, schnell zu entfernen, zieht man sie einfach ganz aus dem Fenster.

Ein Doppelklick auf die Trennlinie zweier Spaltentitel stellt automatisch die optimale Breite ein.

Klickt man auf einen Spaltentitel, ändert sich die Sortierreihenfolge von auf- zu absteigend. Hält man SHIFT gedrückt während man auf einen Spaltentitel klickt, lässt sich eine zweite Sortierung einrichten. So kann man zum Beispiel seine People Dateien nach Firmen sortieren und innerhalb dieser Sortierung nach Kontaktnamen. Obiger Screenshot zeigt ein Beispiel dafür. Die zweite Sortierordnung ist mit einem helleren Pfeil neben dem Titel gekennzeichnet.

Diese Attribute zu bearbeiten ist genauso einfach wie das Umbenennen einer Datei: Entweder klickt man auf einen Eintrag oder drückt ALT E und bewegt sich zwischen den Attributen mit TAB und SHIFT TAB. ESC verlässt den Bearbeitungsmodus ohne die Änderungen zu übernehmen.

## Attribute im Terminal

Für alle, die die Kommandozeile bevorzugen oder vorhaben, mit vielen Dateien via Skript zu arbeiten, gibt es eine Reihe von Befehlen, um Attribute vom Terminal aus zu bearbeiten.

### listattr

listattr listet die Attribute einer Datei auf, zeigt aber nicht deren Inhalt.

    usage: listattr 'filename' ['filename' ...]

Von obigem Beispiel-Screenshot:

     ~/people ->listattr Clara\ Botters
    File: Clara Botters
       Type         Size                 Name
    -----------  ---------  -------------------------------
    MIME String         21  "BEOS:TYPE"
            Text         14  "META:name"
            Text          6  "META:nickname"
            Text          1  "META:company"

            Text         18  "META:address"
            Text          8  "META:city"
            Text          1  "META:state"
            Text          1  "META:zip"
            Text          1  "META:country"

            Text          1  "META:hphone"
            Text         13  "META:wphone"
            Text          1  "META:fax"
            Text         19  "META:email"
            Text          1  "META:url"

            Text          5  "META:group"
        Raw Data         20  "_trk/pinfo_le"

    131 bytes total in attributes.

Neben all den "`META:*`" Attributen mit den Kontaktinformationen, erscheinen zwei Attribute, die vom System gepflegt werden:

- `BEOS:TYPE` enthält den Dateityp als MIME String, hier "`application/x-person`". Er bestimmt das Standard-Icon und welche Anwendung die Datei z.B. bei einem Doppelklick öffnet.

- "`_trk/pinfo_le`" ist das Attribut, in dem Tracker die Position des Icons der Datei speichert.

Man beachte den umgekehrten Schrägstrich nach "Clara". Im Terminal muss man Sonderzeichen wie `' " * \ $ ? !` "escapen". Das Leerzeichen zwischen "Clara" und "Botters" ist ebenfalls eines. Der Backslash ist also in Wirklichkeit vor dem Leerzeichen, und nicht etwa nach "Clara".

### catattr

catattr gibt den Inhalt eines bestimmten Attributs einer Datei aus.

    usage: catattr [--raw|-r] attr_name file1 [file2...]

Wieder das Beispiel:

     ~/people ->catattr META:city Clara\ Botters
    Clara Botters : string : Whelton

### addattr

addattr hängt ein Attribut an eine Datei und/oder füllt es mit einem Wert.

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

             Type is one of:
                     string, mime, int, llong, float, double, bool, icon, raw
                     or a numeric value (ie. 0x1234, 42, 'ABCD', ...)
             The default is "string"

Wenn also die gute Clara einen Job bei der multi-nationalen Barkelbaer Inc. angetreten hat, befüllt man das vorher leere "Company" Attribut mit dieser Information (welches vom Typ "string" ist):

     ~/people ->addattr -t string META:company Barkelbaer\ Inc. Clara\ Botters

### rmattr

rmattr entfernt ein Attribut komplett von einer Datei.

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

Obwohl es in der Praxis wohl immer genügen würde das "Fax" Attribut einfach nicht zu füllen, kann man es so auch komplett von Claras Datei entfernen:

     ~/people ->rmattr META:fax Clara\ Botters

### copyattr

copyattr kopiert Attribute von einer oder mehreren Datei zu einer anderen. Standardmäßig wird dabei der eigentliche Inhalt der Datei nicht mit kopiert.

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

Wenn neben den Attributen auch die Daten der Datei selbst kopiert werden sollen, verwendet man die Option "-d" oder "--data".

Mehr Informationen zu diesen Befehlen und ihren Optionen erhält man durch Eingabe des Befehls gefolgt von "-h" oder "--help".