---
name: "aefa"
section: "1"
platform: "linux"
package: "aegis"
version: "4.24.3-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/aefa"
---

# aefa(1)

modify the attributes of a file

## NAME

aegis file attributes - modify the attributes of a file

## SYNOPSIS

**aegis** **-File\_ATtributes** **-File** *attr-file* \[ *option*... \] *filename*\
 **aegis** **-File\_ATtributes** **-Edit** \[ *option*... \] *filename*\
 **aegis** **-File\_ATtributes** \[ *option*... \] *name***=***value* *filename*\
 **aegis** **-File\_ATtributes** **-UUID *number*** **-File *filename***\
 **aegis** **-File\_ATtributes** **-Help**

## DESCRIPTION

The *aegis* *-File\_ATtributes* command is used to set, edit or list the attributes of a file.

The output of the **-List** variant is suitable for use as input at a later time.

See [*aefattr*(5)](/aefattr/5.md) for a description of the file format.

Attribute names are not case sensitive.  File attributes with a name starting with an upper case letter will appear in [*ael*(1)](/ael/1.md) and [*aeget*(1)](/aeget/1.md) listings, while those starting with a lower case letter will not.

### Shorthand

If you are only setting the values of unique attributes, it is possible to do this from the command line, using the *name***=***value* form.

Note that this usage will replace the first attribute with the given name.  If there is more than one attribute of that name, the second and subsequent attributes are unchanged.  If there is no attribute of the given name, it will be appended.

You may set more than one attribute at a time, provided that their names are unique.  Attribute names are not case sensitive.

### Known Attribute Names

While many of the anticipated uses of file attributes are to allow projects to attach their own specialized data to individual files, Aegis also uses some attributes for its own purposes (and arguably, should always have done so to maximize forwards compatibility across Aegis upgrades).

- content-type

  This is taken directly from the MIME definition of Content-Type. It remembers what sort of file this is.  It is anticipated that a *diff* tool, for example, could make use of this attribute to provide format-specific file difference listings.  Some change set interchange formats are capable of carrying this information.

- entire-source-hide

  boolean.  If true, this file is not included by the *aedist -entire-source* flag.  The *aetar* and *aerevml* commands work similarly. Think of it as a "local only" flag.

- foreign-copyright

  boolean.  If true, this file will not be checked by the [*aede-policy*(1)](/aede-policy/1.md) `copyright` validation.

- aede-policy-tabs-allowed

  boolean. If true, the *no-tabs* policy of the [*aede-policy*(1)](/aede-policy/1.md) command does not apply.

- aede-policy-line-length

  integer. The maximum allowed line length in the *line-length* policy of the [*aede-policy*(1)](/aede-policy/1.md) command; infinity if 0.

- local-source-hide

  boolean.  If true, this file is not included by *aedist* change sets.  The *aetar* and *aerevml* commands work similarly. Change sets which contain *only* thee files will be omitted from the *aedist -inventory* output. Think of it as a "local only" flag.

- aeipass-options:assign-file-uuid

  boolean.  If false, *aeipass* will not assign a fresh UUID to this file.  This flag is set by *aedist* -rec if the action associated with the file is a create and the file is missing the UUID.  This behaviour is needed to prevent the effect of having different UUIDs assigned to the same file in different repositories.

## OPTIONS

The following options are understood:

- **-BAse\_RElative**

  This option may be used to cause relative filenames to be considered relative to the base of the source tree. See [*aeuconf*(5)](/aeuconf/5.md) for the corresponding user preference.

- **-CUrrent\_RElative**

  This option may be used to cause relative filenames to be considered relative to the current directory.  This is usually the default. See [*aeuconf*(5)](/aeuconf/5.md) for the corresponding user preference.

- **-Change** *number*

  This option may be used to specify a particular change within a project. See [*aegis*(1)](/aegis/1.md) for a complete description of this option.

- **-Help**

  This option may be used to obtain more information about how to use the *aegis* program.

- **-List**

  This option may be used to obtain a list of suitable subjects for this command. The list may be more general than expected.

- **-Project** *name*

  This option may be used to select the project of interest. When no **-Project** option is specified, the *AEGIS\_PROJECT* environment variable is consulted. If that does not exist, the user's *$HOME/.aegisrc* file is examined for a default project field (see [*aeuconf*(5)](/aeuconf/5.md) for more information). If that does not exist, when the user is only working on changes within a single project, the project name defaults to that project. Otherwise, it is an error.

- **-TERse**

  This option may be used to cause listings to produce the bare minimum of information. It is usually useful for shell scripts. **-Universal\_Unique\_IDentifier** *number* This option may be used to set the UUID of a file.

- **-Verbose**

  This option may be used to cause aegis to produce more output. By default aegis only produces output on errors. When used with the **-List** option this option causes column headings to be added.

- **-Wait**

  This option may be used to require Aegis commands to wait for access locks, if they cannot be obtained immediately. Defaults to the user's *lock\_wait\_preference* if not specified, see [*aeuconf*(5)](/aeuconf/5.md) for more information.

- **-No\_Wait**

  This option may be used to require Aegis commands to emit a fatal error if access locks cannot be obtained immediately. Defaults to the user's *lock\_wait\_preference* if not specified, see [*aeuconf*(5)](/aeuconf/5.md) for more information.

See also [*aegis*(1)](/aegis/1.md) for options common to all aegis commands.

All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (\_) are optional. You must use consecutive sequences of optional letters.

All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important.

For example: the arguments "-project, "-PROJ" and "-p" are all interpreted to mean the **-Project** option. The argument "-prj" will not be understood, because consecutive optional characters were not supplied.

Options and other command line arguments may be mixed arbitrarily on the command line, after the function selectors.\

The GNU long option names are understood. Since all option names for *aegis* are long, this means ignoring the extra leading '-'. The "**--***option***=***value*" convention is also understood.

## RECOMMENDED ALIAS

The recommended alias for this command is

```
csh%    alias aefa 'aegis -fat \!* -v'
sh$     aefa(){aegis -fat "$@" -v}
```

## ERRORS

It is an error if the current user is not an administrator of the specified project.\
 It is an error if the current user is not the developer of the specified change.\
 It is an error if the file is not included in the specified change.

## EXIT STATUS

The *aegis* command will exit with a status of 1 on any error. The *aegis* command will only exit with a status of 0 if there are no errors.

## ENVIRONMENT VARIABLES

See [*aegis*(1)](/aegis/1.md) for a list of environment variables which may affect this command. See [*aepconf*(5)](/aepconf/5.md) for the project configuration file's *project\_specific* field for how to set environment variables for all commands executed by Aegis.\

## SEE ALSO

- *aeca*(5)

  modify the attributes of a change

- [*aefattr*(5)](/aefattr/5.md)

  file attributes file format\

## COPYRIGHT

aegis version 4.24.3.D001\
 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter Miller

The aegis program comes with ABSOLUTELY NO WARRANTY; for details use the '*aegis -VERSion License*' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '*aegis -VERSion License*' command.\

## AUTHOR

| | | |
| --- | --- | --- |
| Peter Miller | E-Mail: | millerp@canb.auug.org.au |
| `/\/\*` | WWW: | http://www.canb.auug.org.au/~millerp/ |
