Attributi

Gli attributi sono campi di dati che appartengono ad un file ma non ne fanno parte: non sono calcolati nella dimensione del file e possono essere copiati e modificati senza senza che il loro contenuto venga modificato. Il sistema ad esempio utilizza questi attributi per memorizzare la dimensione del file, il tipo di file o la data dell'ultima modifica. Tutto questo è analogo ad altri sistemi operativi ed ai loro file system.

La principale differenza è la possibilità di aggiungere qualsiasi tipo di attributo a qualsiasi file, visualizzarlo o renderlo modificabile in una finestra del Tracker. E' sufficiente definire il tipo di attributo che si vuole aggiungere ad un tipo di file (e.g. una stringa, un numero o il tempo) dandogli un un nome ed una descrizione.

Il file stesso non ha nemmeno bisogno di contenere qualcosa. Diamo un'occhiata a questi file People:

people.png

Come mostra l'immagine, tutti i file hanno dimensione zero e possiedono degli attributi allegati, ad esempio l'attributo E-mail di "John Nox" è modificato direttamente nel Tracker.

Se gli attributi vengono indicizzati, come per i file People, le Email oppure per i file audio, essi potranno essere trovati tramite il veloce sistema di ricerca incluso in Haiku.

index Gli attributi nel Tracker

Gli attributi sono visualizzati in modo simile ad un database o ad un foglio di calcolo. Usando il Tracker si può scegliere quali attributi visualizzare (colonne) ed ordinare di conseguenza la lista dei file (righe).

Per poterlo fare bisogna aprire una finestra del Tracker, cliccare sul menu Attributi e scegliere l'attributo che si desidera visualizzare. Altrimenti, si può semplicemente cliccare con il tasto destro su una colonna e segnare le voci nel menu contestuale, è possibile riordinare le colonne facendo un semplice drag&drop sulla testa della colonna. Un modo veloce per eliminare le colonne indesiderate è spostare una colonna al di fuori della finestra.

Per ridimensionare automaticamente una colonna alla sua larghezza ottimale, è sufficiente fare un doppio click nella linea tra due attributi.

Per cambiare l'ordinamento da crescente a decrescente, si può cliccare sulla testa della colonna desiderata, in alternativa mentre si clicca su una colonna si potrà scegliere un ordinamento alternativo premendo il tasto SHIFT. E' possibile ad esempio ordinare i file People "per compagnia" ed all'interno dello stesso ordine disporli per il nome del contatto, un esempio è lo screenshot precedente. La modalità di ordinamento secondaria è marcata da un indicatore leggermente colorato dietro la testa della colonna.

Modificare questi attributi è semplice come rinominare un file: Ad esempio cliccando su una voce, o premendo ALT E muovendosi attraverso gli attributi con TAB e SHIFT TAB. Premendo ESC si abbandona la modalità di modifica senza applicare alcun cambiamento.

index Gli attributi nel Terminale

Se si preferisce usare la linea di comando, oppure si ha intenzione di lavorare su molti file usando lo scripting, esistono diversi comandi per controllare gli attributi dal Terminale.

index listattr

listattr elenca gli attributi di un file, ma non mostra il loro contenuto.

uso: listattr 'nomefile' ['nomefile' ...]

Dal precedente 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.

Oltre a tutti gli attributi "META:*" che contengono le informazioni del contatto, ci sono due attributi gestiti dal sistema:

Il backslash dopo "Clara" nel Terminale è necessario prima di caratteri speciali come '"*\$?!. Anche lo spazio tra "Clara" e "Botters" fa parte di questi. Infatti, il backslash è posto davanti al carattere "spazio" e non dopo "Clara".

index catattr

catattr visualizza il contenuto di uno specifico attributo di un file.

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

Dall'esempio di prima:

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

index addattr

addattr aggiunge un attributo ad un file e/o lo riempie con un valore.

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"

Quindi, ipotizzando che Clara abbia ottenuto un lavoro dalla multinazionale Barkelbaer Inc., l'utente riempirà in questo modo l'attributo "Company" (teoricamente vuoto) con le informazioni (che sono di tipo "string"):

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

index rmattr

rmattr rimuove completamente un attributo da un file.

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.

Anche se si può scegliere di non riempire l'attributo "Fax", è possibile rimuoverlo completamente dal file di Clara digitando:

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

index copyattr

copyattr copia gli attributi da uno o più file ad un altro. Di default, il contenuto del file non viene copiato.

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

Per copiare gli attributi del file più i contenuti del file stesso, è necessario aggiungere l'opzione "-d" o "--data".


Ulteriori informazioni su questi comandi e sulle loro opzioni possono essere trovati digitando il nome del comando seguito da "-h" oppure "--help".