The Unix Hierarchical Filesystem
Large collections of files bring the risk of filename collisions, and even with unique names, make management difficult. Unix handles this by permitting files to be grouped into directories: each directory forms its own little name space, independent of all other directories. Directories can also supply default attributes for files, a topic that we discuss briefly in Section B.6.1, later in this Appendix.
Filesystem Structure
Directories can be nested almost arbitrarily deep, so the Unix
filesystem forms a tree structure. Unix avoids the
synonym folder because paper file
folders do not nest. The base of the filesystem tree is called
the root directory, and is given a
special and simple name: / (ASCII
slash). The name /myfile then
refers to a file named myfile in
the root directory. Slash also serves another purpose: it acts as a
delimiter between names to record directory
nesting. Figure B-1
shows a tiny portion of the top-level structure of the
filesystem.

Figure B-1. Filesystem tree
Unix directories can contain arbitrary numbers of files. However, most current Unix filesystem designs, and filesystem programming interfaces, assume that directories are searched sequentially, so the time to find a file in a large directory is proportional to the number of files in that directory, even though much faster lookup schemes are known. If a directory contains ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access