File attributes are a type of meta-data that describe and may modify how files and/or directories in a filesystem behave. Typical file attributes may, for example, indicate or specify whether a file is visible, modifiable, compressed, or encrypted. The availability of most file attributes depends on support by the underlying filesystem (such as FAT, NTFS, ext4) where attribute data must be stored along with other control structures. Each attribute can have one of two states: set and cleared. Attributes are considered distinct from other metadata, such as dates and times, filename extensions or file system permissions. In addition to files, folders, volumes and other file system objects may have attributes.
dirand Windows apps like File Explorer do not show hidden files by default, unless asked to do so.
dirand Windows apps like File Explorer do not show system files by default even when hidden files are shown, unless asked to do so.
Other attributes that are displayed in the "Attributes" column of Windows Explorer include:
In DOS, OS/2 and Windows, the
attrib command in cmd.exe and command.com can be used to change and display the four traditional file attributes. File Explorer in Windows can show the seven mentioned attributes but cannot set or clear the System attribute.Windows PowerShell, which has become a component of Windows 7 and later, features two commands that can read and write attributes:
Set-ItemProperty. To change an attribute on a file on Windows NT, the user must have appropriate file system permissions known as Write Attributes and Write Extended Attributes.
In Unix and Unix-like systems, including POSIX-conforming systems, each file has a 'mode' containing 9 bit flags controlling read, write and execute permission for each of the file's owner, group and all other users (see File-system permissions §Traditional Unix permissions for more details) plus the setuid and setgid bit flags and a 'sticky' bit flag. The mode also specifies the file type (regular file, directory, or some other special kind).
In 4.4BSD and 4.4BSD-Lite, files and directories (folders) accepted four attributes that could be set by the owner of the file or the superuser (the "User" attributes) and two attributes that could only be set by the superuser (the "System" attributes):
FreeBSD also supports:
whereas DragonFly BSD supports:
macOS added three attributes:
In these systems, the
ls commands can be used to change and display file attributes. To change a "user" attribute on a file in 4.4BSD-derived operating systems, the user must be the owner of the file or the superuser; to change a "system" attribute, the user must be the superuser.
The Linux operating system can support a wide range of file attributes that can be listed by the
lsattr command and modified, where possible, by the
Programs can examine and alter attributes using ioctl operations.
Many Linux file systems support only a limited set of attributes, and none of them support every attribute that
chattr can change. File systems that support at least some attributes include ext4, XFS and btrfs.
|Attribute||lsattr flag||chattr option||Semantics and rationale|
||atime record is not modified when file is read/accessed.|
Writing to file only allowed in append mode.
Prevents any change to file's contents or metadata: file/directory cannot be written to, deleted, renamed, or hard-linked.
||File is skipped by the dump program|
||Requests that, when deleted, all file data blocks are filled with zeroes.|
||Changes are written synchronously to the underlying filesystem storage medium; equivalent to 'sync' mount option for affected files.|
Edited: 2021-06-18 18:48:36