.. index:: filenames .. _filenames: The Unix Filename ------------------ :t:`Linux for Programmers and Users`, Section 3.26 * Filename limited to 255 characters. Can not contain / or NULL character. * Filenames are case-sensitive; chap and Chap are two different filenames. * Group of filenames held together in a directory. * Directory contains name of the file. * Both files and directories are subject to access control. .. note:: Because a directory contains the filenames, creating or deleting files requires manipulation of the directory. But a directory can be modified only by the kernel. We can't edit a directory file with an editor but only by running commands (like :command:`cp` and :command:`rm`) that make the kernel change the directory entry. A directory contains filenames not files. It's a notable feature of the system that we can access critical resources not directly, but only by running commands that access them. For instance, we add an entry to a directory by running the cp command. The passwd command updates a sensitive file (:file:`/etc/shadow`). We can freely run passwd but we can not edit :file:`/etc/shadow` directly. A file has a unique number as well as other attributes, and only the number and filename are stored in the directory. The other file attributes are stored, not in the file, but in a separate area of the disk not directly accessible to users.