用户指南

# Attributes（属性）

属性是一些数据段，它们属于文件，但却不是文件的组成部分，例如：它们不计入文件的大小，而且可以在不改变文件本身的情况下，进行复制和修改。系统利用属性来储存文件信息，例如：文件大小，类型以及最近的修改日期。这与其他的系统和文件系统相类似。

所不同的是，您可以为文件添加任何类型的属性，并可以在 Tracker 窗口中显示和修改该属性。你只需要在文件类型中添加你所希望的属性类型（例如：字符串，整数或者时间），然后进行命名，给出相关的描述。

文件本身设置不需要任何的内容，请看下面 People 文件的例子：

您可以看到，所有的零大小文件都有附加属性，而在 Tracker 中，“John Nox” 的 E-mail 属性正在进行修改。

如果您对这些属性做出索引，类似于 People，Email 或者音频文件默认的那样，它们在 Haiku 的快速查询系统中也可以查询到。

## Tracker中的属性

属性的显示非常类似于数据库或者电子表格。利用Tracker，你也可以选择显示哪些属性（列），并依此来对文件（行）进行分类。

为此，打开一个 Tracker 窗口，点击 Attributes 菜单，选择希望显示的属性。或者，右键点击列标题，然后在快捷菜单中标记该项目。您可以通过简单的拖拽来进行纵列排序；降序排列标题。最快的移除您不需要的列的方式是直接从窗口中移出该列。

双击标题中两个属性之间的竖线，可以自动地对列的宽度进行最佳的调整。

您可以通过点击列标题来进行升序或者降序的排列 您也可以在点击列标题的同时按下 SHIFT 键来进行二次排序。 例如，你可以在联系人姓名排序的基础上，再次通过公司来对你的 People 文件进行排序。以上面的截图为例，在标题中，二次排序以较浅的颜色进行了标记。

属性的编辑和修改文件名一样简单：点击该项或者按 ALT E 键，然后使用 TAB 和 SHIFT TAB键在属性之间移动。按下 ESC 键，退出编辑状态，不执行修改。

## 终端中的属性

如果你喜欢使用命令行，或者计划使用脚本来处理较多的文件，那么在 Terminal 中有一些可用于控制属性的命令。

### listattr

listattr 命令列出了文件的属性，但不显示属性内容。

    usage: listattr 'filename' ['filename' ...]

上面我们的截图中的例子：

     ~/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.

除了所有的 "`META:*`" 属性用于显示联系方式，还有两个由系统管理的属性：

- `BEOS:TYPE` 以 MIME 字符串的形式保存文件类型，保存于 "`application/x-person`" 。它决定了默认的图标以及当你双击打开该文件时所要运行的程序。

- "`_trk/pinfo_le`" 是一个位置属性，Tracker 可以通过它来跟踪文件图标的位置。

需要注意的是 "Clara" 之后的反斜杠。在 Terminal 中您必须 "避开" 特殊字符，例如 `'"*\$?!` ；同时，处于 "Clara" 和 "Botters" 之间的空格也属于此类字符。所以反斜杠真实的出现在空格字符之前，而不是 "Clara" 之后。

### catattr

catattr 命令显示了文件特有属性的内容。

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

还是上面的例子：

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

### addattr

addattr 命令用于为文件添加属性，并进行赋值。

    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"

所以当亲爱的 Clara 在跨国公司 Barkelbaer Inc.找到了工作，你就可以为原本空白的 "Company" 属性补充该数据 (而此数据也属于 "string" 类型)：

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

### rmattr

rmattr 命令用于从文件中完全移除其某一属性。

    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.

即使不填写 "Fax" 属性，在实际应用中也已经足够了；所以你可以通过键入下面的命令来从 Clara 文件中完全删除它：

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

### copyattr

copyattr 命令用于从一些文件向另一些文件拷贝属性。默认情况下，文件的实际内容并没有进行拷贝。

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

如果您希望完全拷贝文件的属性及其数据文件，你可以在命令后添加 "-d" 或者 "--data" 来完成。

更多有关这些命令和它们的参数选项的信息，您可以通过键入命令名，然后辅以 "-h" 或者 "--help" 选项来获取。