# Attributes

> Find attributes using the cm find command in Unity Version Control CLI.

Find and filter objects by the value of object attributes.

> **Note:**
>
> The `cm find attribute` command refers to generic attributes, not specific [UVCS attributes](../../uvcs-cli/attribute).

## Filtering options

The following list displays the different filtering options (`where`) that are available to use with the `cm find attribute` command:

* `comment`
* `date`
* `guid`
* `id`
* `owner`
* `srcobj`
* `type`
* `value`

> **Note:**
>
> The condition `date` and `type` correspond to the **Creation date** and **Name** columns in the **Attributes** view of the UVCS desktop application.

## Output options

The following list displays the different output options (`--format`) available to use with the `cm find attribute` command:

* `comment`
* `date`
* `id`
* `owner`
* `type`
* `value`

## `cm find attribute` examples

### Get all attributes

To find attributes, you need the object ID. For example, you can get the ID when you query for a branch:

```text
cm find branch "where name = 'main'" --format="{id}" --nototal
3
```

When you have the object ID, you can get the attribute list for that ID:

```text
cm find attributes "where srcobj = 3" --nototal
objid:3@repid:2@repserver:localhost:8087 -- status --> PASSED
```

In the previous example, the attribute name is `status` and the attribute value is `PASSED`.

You can use Powershell or Bash to combine the two commands:

* Powershell:
  ```text
  cm find branch "where name = 'main'" --format="{id}" --nototal |Foreach-Object { cm find attributes where srcobj= $_ --nototal}
  ```
* Bash:
  ```text
  for branch_id in 'cm find branch "where name = 'main'" --format="{id}" --nototal' ;do cm find attributes "where srcobj=$branch_id" --nototal; done
  ```

### Get all objects with a specific attribute

Query for a specific attribute regardless of the type of object:

```text
cm find attributes "where type = 'status' and value='PASSED' and date > 'this month'"
objid:253012@repid:2@repserver:localhost:8087 -- status --> PASSED
objid:253013@repid:2@repserver:localhost:8087 -- status --> PASSED
objid:253014@repid:2@repserver:localhost:8087 -- status --> PASSED
objid:268518@repid:2@repserver:localhost:8087 -- status --> PASSED
```
