No passado, aprendi que nos sistemas de arquivos Linux / UNIX, os diretórios são apenas arquivos, que contêm os nomes dos arquivos e os números de inode dos arquivos dentro do diretório.
Existe uma maneira simples de ver o conteúdo de um diretório? Quero dizer a maneira como os nomes e inodes dos arquivos são armazenados / organizados.
Estou não procurar ls
, find
ou algo semelhante. Também não quero ver o conteúdo dos arquivos dentro de um diretório. Eu quero ver a implementação dos diretórios. Se todo diretório for apenas um arquivo de texto com algum conteúdo, talvez exista uma maneira simples de ver o conteúdo desse arquivo de texto.
No bash no Linux, não é possível fazer a cat folder
. A saída é justa Is a directory
.
Atualizar a pergunta Como alguém inspeciona as informações da estrutura de diretórios de um arquivo unix / linux? soluciona o mesmo problema, mas não possui solução útil como a do mjturner .
fonte
vi <folder>
atende às suas necessidades? Apenas mencionandovim <DIR>
É isso que voce quer?stat
comando.stat folder
.cat
teria funcionado. Mas essa abordagem era obsoleta décadas atrás. Não conheço nenhuma maneira direta de ver o armazenamento real do sistema de arquivos. Em vez disso, há novas chamadas do sistema para retornar as informações em um formato padronizado, que permanece o mesmo, independentemente do sistema de arquivos subjacente que está sendo usado.Respostas:
A ferramenta para exibir detalhes do inode para um sistema de arquivos será específica do sistema de arquivos. Para o
ext2
,ext3
,ext4
sistemas de arquivos (a maioria dos sistemas de arquivos comuns do Linux), você pode usardebugfs
, por XFSxfs_db
, para ZFSzdb
. Parabtrfs
algumas informações, consulte obtrfs
comandoPor exemplo, para explorar um diretório em um
ext4
sistema de arquivos (neste caso,/
édev/sda1
):No exemplo acima, começamos encontrando o inode do diretório
src
(664488
) e, em seguida, despejamos seu conteúdo no arquivosrc.out
e, em seguida, exibimos isso usandood
. Como você pode ver, o conteúdo de todos os arquivos desse diretório (Animation.js
, etc.) é visível no despejo.Isso é apenas o começo - consulte a
debugfs
página do manual ou digite-help
adebugfs
para obter mais informações.Se você estiver usando
ext4
, poderá encontrar mais informações sobre a estrutura e o layout das entradas de diretório na documentação do kernel .fonte
od -x
para despejar o arquivo de entrada do diretório.Você pode usar sua linguagem de programação preferida, abrir o diretório como se fosse um arquivo e ler bytes do identificador de arquivo resultante. Isso não vai dizer muito, no entanto, já que será apenas lixo (com algumas seqüências reconhecíveis) desde que você não saiba como está organizado. A organização do processo é praticamente um problema de implementação do sistema de arquivos em questão. Se você quiser examinar essas coisas em profundidade, sugiro que comece lendo
man dirent.h
. Isso deve ser o suficiente para direcioná-lo ainda mais para o que chama sua atenção.fonte
Você pode tentar (a partição é um exemplo).
use dump para gravar dados de inode em um arquivo.
homem é seu amigo, isso deve lhe dar algumas idéias.
fonte