Guia do Usuário

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

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

### 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:

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

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

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

    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

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