In computing, a hidden folder (sometimes hidden directory) or hidden file is a folder or file which filesystem utilities do not display by default when showing a directory listing. They are commonly used for storing user preferences or preserving the state of a utility and are frequently created implicitly by using various utilities. They are not a security mechanism because access is not restricted – usually the intent is simply to not "clutter" the display of the contents of a directory listing with files the user did not directly create. [1] [2] [3] [4]
In
Unix-like operating systems, any file or folder that starts with a
dot character (for example, /home/user/.config), commonly called a dot file or dotfile, is to be treated as hidden – that is, the
ls
command does not display them unless the -a
or -A
flags (ls -a
or ls -A
) are used.
[5] In most
command-line
shells,
wildcards will not match files whose names start with .
unless the wildcard itself starts with an explicit .
.
A convention arose of using dotfiles in the user's home directory to store per-user configuration or informational text. Early uses of this were the well-known dotfiles
.profile
,
.login
, and
.cshrc
, which are configuration files for the
Bourne shell and
C shell and shells compatible with them, and
.plan
and
.project
, both used by the finger
and name
commands.
[6]
Many applications, from
bash to desktop environments such as
GNOME, now store their per-user configuration this way, but the Unix/Linux
freedesktop.org
XDG Base Directory Specification aims to migrate user config files from individual dotfiles in $HOME
to non-hidden files in the hidden directory $HOME/.config
.
[7]
The
Android operating system uses empty .nomedia
files to tell
smartphone
apps not to display or include the contents of the folder. This prevents
digital photos and
digital music files from being shown in picture galleries or played in
MP3 player apps. This is useful to prevent downloaded
voicemail files from playing between the songs in a
playlist, and to keep
personal photos private while still allowing those in other folders to be shared in person with friends, family, and colleagues. The .nomedia
file has no effect on the filesystem or even the
operating system, but instead depends entirely on each individual app to respect the presence of the different files.
In the
GNOME
desktop environment (as well as all programs written using
GLib
[8]), filenames listed in a file named .hidden
in each directory are also excluded from display. In GNOME's file manager, the keyboard shortcut Ctrl+H enables the display of both kinds of hidden files.
In addition to the "dotfile" behaviour, files with the "Invisible" attribute are hidden in
Finder, although not in
ls
. The "Invisible" attribute can be set or cleared using the SetFile
command; for example, invoking SetFile -a V jimbo
will hide the file jimbo
.
[9] Starting in
Mac OS X Snow Leopard, the
chflags
command can also be used; for example, chflags hidden jimbo
will hide the file jimbo
.
[10]
In
DOS systems, file directory entries include a Hidden
file attribute which is manipulated using the attrib command. Using the command line command dir /ah
displays the files with the Hidden attribute. In addition, there is a System file attribute that can be set on a file, which also causes the file to be hidden in directory listings. Use the command line command dir /as
to display the files with the System attribute.
Under Windows Explorer, Hidden files and directories are, by default, not displayed - though they are still accessible by entering the full path into the explorer address bar. System files are displayed, unless they are also hidden. There are two options that enable the display of hidden files. The main "Hidden files and folders" option can be used to turn on the display of hidden files but this won't, on its own, display hidden system files. A second option, "Hide protected operating system files" additionally needs to be turned off in order for hidden system files to be shown. Hidden files are displayed with a slight transparency, so even when they are visible they are visually delineated from non-hidden files.
Under
Windows Explorer, the content of a directory can also be hidden just by appending a pre-defined
CLSID
[11] to the end of the folder name. The directory is still visible, but its content becomes one of the Windows Special Folders.
[12] However, the real content of this directory can still be seen using the CLI command dir
.
.plan
and .project
files in that user's $HOME
folder.