En el pasado, aprendí que en los sistemas de archivos Linux / UNIX, los directorios son solo archivos, que contienen los nombres de archivo y los números de inodo de los archivos dentro del directorio.
¿Hay una manera simple de ver el contenido de un directorio? Me refiero a la forma en que se almacenan / organizan los nombres e inodos de los archivos.
Estoy no busca ls
, find
o algo similar. Tampoco quiero ver el contenido de los archivos dentro de un directorio. Quiero ver la implementación de los directorios. Si cada directorio es solo un archivo de texto con algún contenido, tal vez exista una forma simple de ver el contenido de este archivo de texto.
En bash en Linux no es posible hacer un cat folder
. La salida es justa Is a directory
.
Actualización La pregunta ¿Cómo se inspecciona la información de estructura de directorios de un archivo unix / linux? aborda el mismo problema pero no tiene una solución útil como la de mjturner .
fuente
vi <folder>
adapte a tus necesidades? Solo mencionándolovim <DIR>
¿Es esto lo que quieres?stat
comando.stat folder
.cat
habría funcionado. Pero ese enfoque era obsoleto hace décadas. No conozco ninguna forma directa de ver el almacenamiento real del sistema de archivos. En cambio, hay nuevas llamadas al sistema para devolver la información en un formato estandarizado que permanece igual independientemente del sistema de archivos subyacente que se esté utilizando.Respuestas:
La herramienta para mostrar detalles de inodo para un sistema de archivos será específica del sistema de archivos. Para el
ext2
,ext3
,ext4
sistemas de ficheros (la mayoría de los sistemas de ficheros comunes), se puede utilizardebugfs
, por XFSxfs_db
, para ZFSzdb
. Parabtrfs
cierta información está disponible utilizando elbtrfs
comando.Por ejemplo, para explorar un directorio en un
ext4
sistema de archivos (en este caso/
esdev/sda1
):En lo anterior, comenzamos por encontrar el inodo del directorio
src
(664488
) y luego volcamos su contenido en el archivosrc.out
y luego lo mostramos usandood
. Como puede ver, el contenido de todos los archivos en ese directorio (Animation.js
, etc.) son visibles en el volcado.Esto es solo un comienzo: consulte la
debugfs
página del manual o escribahelp
dentrodebugfs
para obtener más información.Si está utilizando
ext4
, puede encontrar más información sobre la estructura y el diseño de las entradas de directorio en la documentación del kernel .fuente
od -x
para volcar el archivo de entrada del directorio.Puede usar el lenguaje de programación que prefiera, abrir el directorio como si fuera un archivo y leer bytes del identificador de archivo resultante. Sin embargo, eso no le dirá mucho, ya que solo será basura (con algunas cadenas reconocibles) siempre y cuando no sepa cómo está organizado. Cómo está organizado es prácticamente un problema de implementación para el sistema de archivos en cuestión. Si desea profundizar en estas cosas, le sugiero que comience leyendo
man dirent.h
. Eso debería ser suficiente para señalarle más hacia lo que le apetece.fuente
Puedes probar (la partición es un ejemplo).
use dump para escribir datos de inodo en un archivo.
el hombre es tu amigo, estos deberían darte algunas ideas.
fuente