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:

people.png

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.

index 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 Atributos 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.

index 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.

index listattr

listattr lista os atributos do arquivo, mas não mostra o conteúdo dos atributos.

uso: listattr 'nome do arquivo' ['nome do arquivo' ...]

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:

Observe a barra invertida após "Clara". No Terminal é preciso realizar o "escape" de caracteres especiais como '"*\\$?!. O espaço entre "Clara" e "Botters" é também um deles. Portanto a barra invertida está na verdade na frente de um caractere de espaço, e não após "Clara".

index 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

index 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

index rmattr

rmattr remove completamente um atributo de um arquivo.

uso: rmattr [-p] atrib nomedoarquivo1 [nomedoarquivo2...]
         'atrib' é o nome de um atributo do arquivo
         Se '-p' é especificado, 'atrib' é considerado como um padrão.

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

index 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".


Mais informações sobre estes comandos e suas opções podem ser encontradas digitando o nome do comando seguido de "-h" ou "--help".