---
name: "setfattr"
section: "1"
platform: "linux"
package: "attr"
version: "2.6.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/setfattr"
---

# setfattr(1)

set extended attributes of filesystem objects

## NAME

setfattr - set extended attributes of filesystem objects

## SYNOPSIS

```
setfattr [-h] -n name [-v value] pathname...
setfattr [-h] -x name pathname...
setfattr [-hP] --restore=file
```

## DESCRIPTION

The  **setfattr** command associates a new *value* with an extended attribute *name* for each specified file.

## OPTIONS

- **-n** *name*, **--name**=*name*

  Specifies the name of the extended attribute to set.

- **-v** *value*, **--value**=*value*

  Specifies the new value of the extended attribute. There are three methods available for encoding the value.  If the given string is enclosed in double quotes, the inner string is treated as text. In that case, backslashes and double quotes have special meanings and need to be escaped by a preceding backslash. Any control characters can be encoded as a backslash followed by three digits as its ASCII code in octal. If the given string begins with 0x or 0X, it expresses a hexadecimal number. If the given string begins with 0s or 0S, base64 encoding is expected.  Also see the --encoding option of [getfattr(1)](/getfattr/1.md).

- **-x** *name*, **--remove**=*name*

  Remove the named extended attribute entirely.

- **-h**, **--no-dereference**

  Do not follow symlinks.  If *pathname* is a symbolic link, it is not followed, but is instead modified itself.

- **-P**, **--physical**

  Do not traverse symbolic links in pathnames during a restore.  Can be combined with option -h.

- **--restore**=*file*

  Restores extended attributes from file. The file must be in the format generated by the **getfattr** command with the **--dump** option. If a dash (*-*) is given as the file name, **setfattr** reads from standard input.

- **--raw**

  Do not decode the attribute value. Can be used to set values obtained with **getfattr --only-values**.

- **--version**

  Print the version of **setfattr** and exit.

- **--help**

  Print help explaining the command line options.

- **--**

  End of command line options. All remaining parameters are interpreted as file names, even if they start with a dash character.

## EXAMPLES

Add extended attribute to user namespace:

```
$ setfattr -n user.foo -v bar file.txt
```

To add md5sum of the file as an extended attribute:

```
# setfattr -n trusted.md5sum -v d41d8cd98f00b204e00998ecf8427e file.txt
```

## AUTHOR

Andreas Gruenbacher, \<*andreas.gruenbacher@gmail.com*\> and the SGI XFS development team, \<*linux-xfs@oss.sgi.com*\>.

Please send your bug reports or comments to \<*https://savannah.nongnu.org/bugs/?group=attr*\> or \<*acl-devel@nongnu.org*\>.

## SEE ALSO

[**getfattr**(1)](/getfattr/1.md), [**xattr**(7)](/xattr/7.md)
