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.