Elke file of directory heeft een zogenoemde inode. Inodes bevatten de administratieve gegevens van files of directories. Zo is in de inode van een file onder meer te vinden wie de eigenaar is (UID ofwel user-id) en wat de permissies zijn, welke tijden (creatie, access etc.) met de file te maken hebben en welke diskblokken de feitelijke data van de file bevatten. Inodes zijn georganiseerd in een tabel (array) en worden ook op de disk in het filesysteem zelf opgeslagen. Inodes zijn te vinden met een indexnummer (inodenummer) in deze tabel.
Hoe zit zo'n filesysteem nu in elkaar? De directory geeft informatie over de filenaam en het bijbehorende inodenummer. Het is dus feitelijk een verzameling van naam-inodenummer paren. gegeven de naam vinden we de inode en met de inode weer alle gegevens die we nodig hebben. Merk op dat de filenaam dus niet in de inode zelf staat. Ook een directory heeft een inode en in de inode is weer te zien dat het om een directory gaat. met ls -i is het inodenummer van een bestand of directory te vinden. Een file wordt dus helemaal gekarakteriseerd door een inode. Als we in een ander directory een nieuwe naam aan dezelfde inode zouden koppelen dan hebben we een zogenoemde link gemaakt (om precies te zijn een hard-link). Er zijn dan twee referenties naar de inode. Met nog meer links kunnen we dit aantal nog hoger maken. Een file wordt pas echt weggegooid, dat wil zeggen, de inode zelf wordt vrijgegeven en de diskblokken die de file tot dan toe in gebruik had worden weer vrijgegeven, als er geen referentie meer naar de inode van de file is. Een directory heeft altijd minimaal twee referenties, namelijk de naam van de directory zoals die in de parent directory aangegeven is en de verwijzing punt in de directory zelf. Als een directory veel subdirectories heeft, dan zal het aantal referenties hoog zijn. Elke subdirectory heeft namelijk een verwijzing naar de parantdirectory (punt-punt).