Hidden file and hidden directory

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 not "clutter" the display of the contents of a directory listing with files the user did not directly create.[1][2][3][4]

Unix and Unix-like environments

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 flag (ls -a) is used. In most command-line shells, wildcards will not match files whose names start with . unless the wildcard itself starts with an explicit . (although this is sometimes configurable; for example, the dotglob[5] option in bash).

The notion that filenames preceded by a . should be hidden in Unix was probably an unintended consequence of trying to make ls not show . and ...[6]

A convention arose of using dotfile 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.[7] 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 dotfiles in $HOME to non-hidden files in $HOME/.config[8] - a hidden directory.

Android

The Android OS, itself derived from Linux, 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 file.

GNOME

In the GNOME desktop environment (as well as all programs written using GLib[9]), 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.

Mac OS X

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".[10] Starting in Mac OS X Snow Leopard, the chflags command can also be used; for example, chflags hidden jimbo will hide the file "jimbo".[11]

DOS and MS Windows

In MS-DOS and other DOS systems, file directory entries include a Hidden File attribute which is manipulated using the attrib command. Use the command line command dir /ah to display the files with the attribute of hidden.

Under Windows Explorer, the content of a directory can be hidden just by appending a pre-defined CLSID [12] to the end of the folder name. The directory is still visible, but its content becomes one of the Windows Special Folders.[13] However, the real content of this directory can still be seen using the CLI command dir.

References

  1. "What is a hidden file?", Microsoft.com
  2. "Configuring X: What are all those dotfiles for anyway?". Linux Focus. March 1998. Retrieved 2013-09-08.
  3. "Sample .bashrc and .bash_profile Files". Linux Documentation Project.
  4. "Understanding Linux configuration files". IBM.com. Retrieved 2012-02-13.
  5. "Bash Reference Manual". 3.5.8 Filename Expansion. Retrieved January 23, 2014.
  6. Rob Pike. "A lesson in shortcuts.". Google Plus.
  7. One user could lookup another by using the command along with the username (and hostname if not on the local host), and the finger service would respond with the other user's current status, and the contents of the .plan and .project files in that user's $HOME folder.
  8. Bastian, Waldo; Lortie, Ryan; Poettering, Lennart (November 24, 2010). "XDG Base Directory Specification". Retrieved June 4, 2014.
  9. "GLib commit: Support for .hidden files". Retrieved 2013-08-07.
  10. SetFile(1)  Darwin and Mac OS X General Commands Manual
  11. chflags(1)  Darwin and Mac OS X General Commands Manual
  12. Canonical Names of Control Panel Items
  13. The Secret BEHIND the Windows 7 “GodMode”

External links