Onde os nomes de arquivos são armazenados em um sistema de arquivos?

39

Onde os nomes de arquivos são armazenados em um sistema de arquivos?

Não está no inode nem no conteúdo real do arquivo, pois temos um link físico que dois nomes de arquivos podem apontar para o mesmo inode.

    
por yegle 27.02.2014 / 21:42

3 respostas

56

Eu não estava encontrando uma cópia adequada, então aqui está uma resposta para sua pergunta.

Nomes de arquivos & diretórios

trecho

File names and directory implications:

  • inodes do not contain file names, only other file metadata.
  • Unix directories are lists of association structures, each of which contains one filename and one inode number.
  • The file system driver must search a directory looking for a particular filename and then convert the filename to the correct corresponding inode number.

Fonte: página da Wikipédia no Inode

Portanto, o nome do arquivo é armazenado na estrutura de informações dos diretórios. Por exemplo:

Estruturadodiretório

trecho

IntheEXT2filesystem,directoriesarespecialfilesthatareusedtocreateandholdaccesspathstothefilesinthefilesystem.Figure9.3showsthelayoutofadirectoryentryinmemory.

Adirectoryfileisalistofdirectoryentries,eachonecontainingthefollowinginformation:

  • inode-Theinodeforthisdirectoryentry.ThisisanindexintothearrayofinodesheldintheInodeTableoftheBlockGroup.Infigure9.3,thedirectoryentryforthefilecalledfilehasareferencetoinodenumberi1,
  • namelength-Thelengthofthisdirectoryentryinbytes,
  • name-Thenameofthisdirectoryentry.

Thefirsttwoentriesforeverydirectoryarealwaysthestandard.and..entriesmeaning"this directory" and "the parent directory" respectively.

Aqui estão as Figura 9.3 referências acima:

Fonte: O projeto de documentação do Linux: Sistema de arquivos

Referências

por 27.02.2014 / 22:07
9

O nome do arquivo é armazenado no respectivo diretório ("arquivo de diretório"). Esta entrada aponta para um inode.

    
por 27.02.2014 / 21:45
1

O nome do arquivo é armazenado na estrutura de dados "directory" que possui "(string) filename" e o correspondente "(int) inode". Diretório é responsável pelo mapeamento nome de arquivo - > inode. e no ode é responsável pelo mapeamento inode - > setor no disco.

    
por 05.04.2015 / 10:47