Directory (computing)

File system structure for locating files

Screenshot of a Microsoft Windows command prompt window showing a directory listing.

In computing, a directory is a file system cataloging structure that contains references to other computer files, and possibly other directories. On many computers, directories are known as folders or drawers,[1] analogous to a workbench or the traditional office filing cabinet. The name derives from books like a telephone directory that lists the phone numbers of all the people living in a certain area.

Files are organized by storing related files in the same directory. In a hierarchical file system (that is, one in which files and directories are organized in a manner that resembles a tree), a directory contained inside another directory is called a subdirectory. The terms parent and child are often used to describe the relationship between a subdirectory and the directory in which it is cataloged, the latter being the parent. The top-most directory in such a filesystem, which does not have a parent of its own, is called the root directory.

The freedesktop.org media type for directories within many Unix-like systems – including but not limited to systems using GNOME, KDE Plasma 5, or ROX Desktop as the desktop environment – is "inode/directory".[2] This is not an IANA registered media type.

## Overview

[edit]

Diagram of a hierarchical directory tree. The root directory is here called "MFD", for Master File Directory. Usually a file can only be in one directory at a time, but here File 2 is hard linked so it appears in two directories.

Historically, and even on some modern embedded systems, the file systems either had no support for directories at all or had only a "flat" directory structure, meaning subdirectories were not supported; there was only a group of top-level directories, each containing files. In modern systems, a directory can contain a mix of files and subdirectories.

A reference to a location in a directory system is called a path.

In many operating systems, programs have an associated working directory in which they execute. Typically, file names accessed by the program are assumed to reside within this directory if the file names are not specified with an explicit directory name.

Some operating systems restrict a user's access only to their home directory or project directory, thus isolating their activities from all other users. In early versions of Unix, the root directory was the home directory of the root user, but modern Unix usually uses another directory such as /root for this purpose.

In keeping with Unix philosophy, Unix systems treat directories as a type of file.[3] Caveats include not being able to write to a directory file except indirectly by creating, renaming, and removing file system objects in the directory and only being able to read from a directory file using directory-specific library routines and system calls that return records, not a byte-stream.[4]

### Folder metaphor

[edit]

Sample folder icon (from KDE).

The name folder, presenting an analogy to the file folder used in offices, and used in a hierarchical file system design for the Electronic Recording Machine, Accounting (ERMA) Mark 1 published in 1958[5] as well as by Xerox Star,[6] is used in almost all modern operating systems' desktop environments. Folders are often depicted with icons that visually resemble physical file folders.

There is a difference between a directory, which is a file system concept, and the graphical user interface metaphor that is used to represent it (a folder).[original research?] For example, Microsoft Windows uses the concept of special folders to help present the contents of the computer to the user in a fairly consistent way that frees the user from having to deal with absolute directory paths, which can vary between versions of Windows, and between individual installations. Many operating systems also have the concept of "smart folders" or virtual folders that reflect the results of a file system search or other operation. These folders do not represent a directory in the file hierarchy. Many email clients allow the creation of folders to organize email. These folders have no corresponding representation in the filesystem structure.

If one is referring to a container of documents, the term folder is more appropriate. [citation needed] The term directory refers to the way a structured list of document files and folders are stored on the computer. The distinction can be due to the way a directory is accessed; on Unix systems, /usr/bin/ is usually referred to as a directory when viewed in a command line console, but if accessed through a graphical file manager, users may sometimes call it a folder.

## Lookup cache

[edit]

This section needs expansion. You can help by adding to it. (December 2013)

|

Operating systems that support hierarchical filesystems (practically all modern ones) implement a form of caching to RAM of recent path lookups. In the Unix world, this is usually called Directory Name Lookup Cache (DNLC), although it is called dcache on Linux.[7]

For local filesystems, cache entries normally expire only under pressure from other more recent entries. For network file systems a coherence mechanism is necessary to ensure that entries have not been invalidated by other clients.[7]

## See also

[edit]

* File folder

Concepts

* Directory structure
* Filename
* Filesystem Hierarchy Standard
* Home directory
* Root directory
* Virtual folder
* Working directory

Commands

* cd (command)
* chroot
* dir (command)
* mkdir
* pushd and popd
* pwd
* tree (command)

|

## References

[edit]

1. ^ "Chapter 1: Tutorial". Using The AMIGA Workbench. Commodore-Amiga. July 1991. p. 46\. "The path specifies the disk name, or location, and all of the drawers that lead to the specified file."
2. ^ Leonard, Thomas (2018-10-02). "Shared MIME-info Database". X Desktop Group. Non-regular files. Retrieved 2023-03-13.
3. ^ "Everything is a File". Behavior Genetics Association. c. 2002. Archived from the original on March 10, 2012. Retrieved April 30, 2021.
4. ^ "readdir(3) — Linux manual page". The Linux man-pages project. 2021-03-22. Retrieved November 27, 2022.
5. ^ Barnard III, G. A.; Fein, L. (1958). Organization and Retrieval of Records Generated in a Large-Scale Engineering Project. pp. 59–63\. doi:10.1109/AFIPS.1958.75.
6. ^ ""Xerox Star User Interface (1982)"". YouTube. 28 August 2009. Archived from the original on 2021-12-21. Retrieved 19 November 2014.
7. ^ a b "Close-To-Open Cache Consistency in the Linux NFS Client". Citi.umich.edu. Retrieved 19 November 2014.

## External links

[edit]

Wikimedia Commons has media related to File system directories.

* Definition of directory by The Linux Information Project (LINFO)

* v
* t
* e

Computer files

Types|

* Binary file / text file
* Data file
* File format
* List of file formats
* File signatures
* Magic number
* Open file formats
* Proprietary file formats
* Metafile
* Sidecar file
* Sparse file
* Swap file
* System file
* Temporary file
* Zero-byte file

Properties|

* Filename
* 8.3 filename
* Long filename
* Filename mangling
* Filename extension
* List of filename extensions
* File attribute
* Extended file attributes
* File size
* Hidden file / Hidden directory

Organisation|

* Directory/folder
* NTFS links
* Temporary folder
* Directory structure
* File system
* Filesystem Hierarchy Standard
* Grid file system
* Semantic file system
* Path

Operations|

* Open
* Close
* Read
* Write

Linking|

* File descriptor
* Hard link
* Shortcut
* Alias
* Shadow
* Symbolic link

Management|

* Backup
* File comparison
* File copying
* Data compression
* File manager
* Comparison of file managers
* File system fragmentation
* File-system permissions
* File transfer
* File sharing
* File synchronization
* File verification

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template