Atributos
Atributos são campos de dados que pertencem a um arquivo mas não fazem parte daquele arquivo, ou seja, eles não são computados dentro do tamanho do arquivo e podem ser copiados ou mudados sem tocar no arquivo em si. O sistema usa estes atributos para armazenar, por exemplo, tamanho do arquivo, tipo de arquivo ou data da última modificação. Isto é similar a outros sistemas operacionais e seus sistemas de arquivos.
O que é diferente é que pode-se adicionar qualquer tipo de atributo a qualquer arquivo e exibi-lo ou torná-lo editável em uma janela do Rastreador. Apenas defina o tipo de atributo que deseja adicionar a um tipo de arquivo (por exemplo, sequência, inteiro ou hora) e dar a ele um nome e descrição.
O arquivo em si nem sequer precisa de qualquer conteúdo absolutamente. Dê uma olhada nestes arquivos do Pessoas, por exemplo:
Como se pode ver, estes são todos arquivos de tamanho zero com atributos anexados, o atributo de correio eletrônico de "John Nox" sendo editado diretamente no Rastreador.
Se indexar estes atributos, como os arquivos do Pessoas, Correio Eletrônico ou de áudio o são por padrão, eles serão também pesquisáveis com o sistema de consulta rápida do Haiku.
Atributos no Rastreador
Atributos são exibidos de maneira bastante semelhante a uma base de dados ou planilha. Usando o Rastreador pode-se escolher quais atributos exibir (colunas) e classificar listas de arquivos (linhas) adequadamente.
Para fazer isto, abra uma janela do Rastreador, clique no menu
e selecione os atributos que deseja exibir. Alternativamente, simplesmente clique com o botão direito do mouse no título de uma coluna e marque os itens no menu de contexto. Pode-se rearranjar as colunas por um simples arrastar e soltar do título da coluna. Mover uma coluna para fora de uma janela é uma maneira rápida para se livrar de colunas desnecessárias.Clique duas vezes na linha entre dois atributos no título para automaticamente redimensionar uma coluna à sua largura otimizada.
Clique no título de uma coluna para alternar a ordem de classificação de ascendente para descendente. Pode-se estabelecer uma ordem de classificação secundária ao pressionar a tecla SHIFT enquanto clica no título de uma coluna. Pode-se classificar seus arquivos do Pessoas por companhia e dentro daquela ordem classificar por nome do contato, por exemplo. Veja a imagem acima como um exemplo. A ordem de classificação secundária é marcada por um leve indicador colorido ao lado do título.
Editar estes atributos é tão simples como renomear um arquivo: ou clique em uma entrada ou pressione ALT E e mova entre os atributos com TAB e SHIFT TAB. ESC sai do modo de edição sem aplicar as mudanças.
Atributos no Terminal
Se preferir utilizar a linha de comando ou planeja trabalhar com muitos arquivos usando scripting, existem vários comandos para controlar atributos a partir do Terminal.
Mais informações sobre estes comandos e suas opções podem ser encontradas digitando o nome do comando seguido de "-h" ou "--help".
listattr
listattr lists a file's attributes, but by default doesn't show the contents of the attributes. For that, you need to add the parameter -l or --long.
usage: listattr [-l|--long] 'filename' ['filename' ...]
Do nosso exemplo de tela acima:
~/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.
Ao lado de todos os atributos "META:*" que retem a informação do contato, existem dois atributos que são gerenciados pelo sistema:
BEOS:TYPE retem o tipo de arquivo como uma sequência MIME, aqui "application/x-person". Ele determina o ícone padrão e o aplicativo que abre o arquivo quando, por exemplo, damos um duplo clique nele.
"_trk/pinfo_le" é o atributo com o qual o Rastreador mantem o controle da posição do ícone de um arquivo.
catattr
catattr exibe o conteúdo de um atributo específico de um arquivo.
uso: catattr [--raw|-r] nome_do_atributo arquivo1 [arquivo2...]
Novamente nosso exemplo:
~/people ->catattr META:city Clara\\ Botters Clara Botters : string : Whelton
addattr
addattr adiciona um atributo a um arquivo e/ou preenche-o com um valor.
uso: addattr [-t type] valor do atributo arquivo1 [arquivo2...] ou: addattr [-f valor-de-um-arquivo] [-t tipo] atributo arquivo1 [arquivo2...] O tipo é um destes: string, mime, int, llong, float, double, bool, icon, raw ou um valor numérico (por exemplo, 0x1234, 42, 'ABCD', ...) O padrão é "string"
Então, digamos que a querida Clara conseguiu um emprego coma multinacional Barkelbaer Inc., preencha o inicialmente vazio atributo "Companhia" com aqueles dados (os quais são do tipo "string" (sequência)):
~/people ->addattr -t string META:company Barkelbaer\\ Inc. Clara\\ Botters
rmattr
rmattr remove completamente um atributo de um arquivo.
usage: rmattr [-p] attr filename1 [filename2...]
Embora, em todo seu aspecto prático, seria suficiente apenas não preencher o atributo "Fax", pode-se removê-lo completamente do arquivo de Clara digitando:
~/people ->rmattr META:fax Clara\\ Botters
copyattr
copyattr copia atributos de um ou mais arquivos para outro(s). Por padrão, o conteúdo real do arquivo não é copiado.
Uso: copyattr <opções> <fonte> [ ... ] <destino>
Se desejar copiar os atributos mais os dados do arquivo em si, pode-se adicionar a opção "-d" ou "--data".