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:
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.
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
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.
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.
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:
BEOS:TYPE gestisce il tipo di file come una stringa MIME, in questo caso "application/x-person", l'attributo determina l'icona predefinita e l'applicazione che apre quel file per esempio quando lo si esegue con un doppio click.
"_trk/pinfo_le" è l'attributo con cui il Tracker tiene traccia della posizione dell'icona associata al file.
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
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
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
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".