In order to understand the syntax of file names, you need to understand how the file system is organized into a hierarchy of directories.
A directory is a file that contains information to associate other files with names; these associations are called links or directory entries. Sometimes, people speak of “files in a directory”, but in reality, a directory only contains pointers to files, not the files themselves.
The name of a file contained in a directory entry is called a file name component. In general, a file name consists of a sequence of one or more such components, separated by the slash character (‘/’). A file name which is just one component names a file with respect to its directory. A file name with multiple components names a directory, and then a file in that directory, and so on.
Some other documents, such as the POSIX standard, use the term
pathname for what we call a file name, and either filename
or pathname component for what this manual calls a file name
component. We don’t use this terminology because a “path” is
something completely different (a list of directories to search), and we
think that “pathname” used for something else will confuse users. We
always use “file name” and “file name component” (or sometimes just
“component”, where the context is obvious) in GNU documentation. Some
macros use the POSIX terminology in their names, such as
PATH_MAX
. These macros are defined by the POSIX standard, so we
cannot change their names.
You can find more detailed information about operations on directories in File System Interface.