Nix uses a simplified model of the file system, which consists of file system objects. Every file system object is one of the following:
- A possibly empty sequence of bytes for contents
- A single boolean representing the executable permission
Mapping of names to child file system objects
An arbitrary string. Nix does not assign any semantics to symbolic links.
File system objects and their children form a tree. A bare file or symlink can be a root file system object.
A plain file:
50 B, executable: false
An executable file:
122 KB, executable: true
A directory with contents:
├── bin │ └── hello: 35 KB, executable: true └── share ├── info │ └── hello.info: 36 KB, executable: false └── man └── man1 └── hello.1.gz: 790 B, executable: false
A directory that contains a symlink and other directories:
├── bin -> share/go/bin ├── nix-support/ └── share/