---
obj: application
repo: https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
---
# chattr
change file attributes on a Linux file system
Usage:
```shell
chattr +<Attribute> <FILE> # Add Attribute
chattr -<Attribute> <FILE> # Remove Attribute
chattr =<Attribute> <FILE> # Set Attribute
```

## Options
| Option | Description                                                      |
| ------ | ---------------------------------------------------------------- |
| `-R`   | Recursively change attributes of directories and their contents. |

## Attributes
| Attribute | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| --------- |   |
| `a`       | A file with the 'a' attribute set can only be opened in append mode for writing.  Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.                                                                                                                                                                                                                                                                                                                                                                                           |
| `A`       | When a file with the 'A' attribute set is accessed, its atime record is not modified.  This avoids a certain amount of disk I/O for laptop systems.                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `c`       | A file with the 'c' attribute set is automatically compressed on the disk by the kernel.  A read from this file returns uncompressed data.  A write to this file compresses data before storing  them  on the  disk.  Note: please make sure to read the bugs and limitations section at the end of this document.  (Note: For btrfs, If the 'c' flag is set, then the 'C' flag cannot be set. Also conflicts with btrfs mount option 'nodatasum')                                                                                                                                         |
| `C`       | A file with the 'C' attribute set will not be subject to copy-on-write updates.  This flag is only supported on file systems which perform copy-on-write.  (Note: For btrfs, the 'C' flag should  be  set on  new or empty files.  If it is set on a file which already has data blocks, it is undefined when the blocks assigned to the file will be fully stable.  If the 'C' flag is set on a directory, it will have no effect on the directory, but new files created in that directory will have the No_COW attribute set. If the 'C' flag is set, then the 'c' flag cannot be set.) |
| `D`       | When a directory with the 'D' attribute set is modified, the changes are written synchronously to the disk; this is equivalent to the 'dirsync' mount option applied to a subset of the files.                                                                                                                                                                                                                                                                                                                                                                                             |
| `i`       | A file with the 'i' attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file, most of the file's metadata can not be modified, and the file can not  be  opened in write mode.  Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.                                                                                                                                                                                                                                                   |
| `m`       | A file with the 'm' attribute is excluded from compression on file systems that support per-file compression.                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `S`       | When a file with the 'S' attribute set is modified, the changes are written synchronously to the disk; this is equivalent to the 'sync' mount option applied to a subset of the files.                                                                                                                                                                                                                                                                                                                                                                                                     |


