A ferramenta para exibir detalhes de inode para um sistema de arquivos será específica do sistema de arquivos. Para os ext2
, ext3
, ext4
filesystems (os sistemas de arquivos Linux mais comuns), você pode usar debugfs
, para XFS xfs_db
, para ZFS zdb
. Para btrfs
, algumas informações estão disponíveis usando o comando btrfs
.
Por exemplo, para explorar um diretório em um sistema de arquivos ext4
(neste caso, /
is dev/sda1
):
# ls src
Animation.js Map.js MarkerCluster.js ScriptsUtil.js
Directions.js MapTypeId.js markerclusterer.js TravelMode.js
library.js MapUtils.js Polygon.js UnitSystem.js
loadScripts.js Marker.js Polyline.js Waypoint.js
# ls -lid src
664488 drwxrwxrwx 2 vagrant vagrant 4096 Jul 15 13:24 src
# debugfs /dev/sda1
debugfs: imap <664488>
Inode 664488 is part of block group 81
located at block 2622042, offset 0x0700
debugfs: dump src src.out
debugfs: quit
# od -c src.out
0000000 250 # \n # ls src
Animation.js Map.js MarkerCluster.js ScriptsUtil.js
Directions.js MapTypeId.js markerclusterer.js TravelMode.js
library.js MapUtils.js Polygon.js UnitSystem.js
loadScripts.js Marker.js Polyline.js Waypoint.js
# ls -lid src
664488 drwxrwxrwx 2 vagrant vagrant 4096 Jul 15 13:24 src
# debugfs /dev/sda1
debugfs: imap <664488>
Inode 664488 is part of block group 81
located at block 2622042, offset 0x0700
debugfs: dump src src.out
debugfs: quit
# od -c src.out
0000000 250 # \n %pre% \f %pre% 001 002 . %pre% %pre% %pre% 204 030 \n %pre%
0000020 \f %pre% 002 002 . . %pre% %pre% 251 # \n %pre% 024 %pre% \f 001
0000040 A n i m a t i o n . j s 252 # \n %pre%
0000060 030 %pre% \r 001 D i r e c t i o n s . j
0000100 s %pre% %pre% %pre% 253 # \n %pre% 024 %pre% \n 001 l i b r
0000120 a r y . j s %pre% %pre% 254 # \n %pre% 030 %pre% 016 001
0000140 l o a d S c r i p t s . j s %pre% %pre%
0000160 255 # \n %pre% 020 %pre% 006 001 M a p . j s %pre% %pre%
0000200 256 # \n %pre% 024 %pre% \f 001 M a p T y p e I
0000220 d . j s 257 # \n %pre% 024 %pre% \v 001 M a p U
0000240 t i l s . j s %pre% 260 # \n %pre% 024 %pre% \t 001
0000260 M a r k e r . j s %pre% %pre% %pre% 261 # \n %pre%
0000300 030 %pre% 020 001 M a r k e r C l u s t e
0000320 r . j s 262 # \n %pre% 034 %pre% 022 001 m a r k
0000340 e r c l u s t e r e r . j s %pre% %pre%
0000360 263 # \n %pre% 024 %pre% \n 001 P o l y g o n .
0000400 j s %pre% %pre% 264 # \n %pre% 024 %pre% \v 001 P o l y
0000420 l i n e . j s %pre% 265 # \n %pre% 030 %pre% 016 001
0000440 S c r i p t s U t i l . j s %pre% %pre%
0000460 266 # \n %pre% 030 %pre% \r 001 T r a v e l M o
0000500 d e . j s %pre% %pre% %pre% 267 # \n %pre% 030 %pre% \r 001
0000520 U n i t S y s t e m . j s %pre% %pre% %pre%
0000540 270 # \n %pre% 240 016 \v 001 W a y p o i n t
0000560 . j s %pre% 305 031 \n %pre% 214 016 022 001 . U n i
0000600 t S y s t e m . j s . s w p %pre% %pre%
0000620 312 031 \n %pre% p 016 022 001 . U n i t S y s
0000640 t e m . j s . s w x %pre% %pre% %pre% %pre% %pre% %pre%
0000660 %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre%
\f %pre% 001 002 . %pre% %pre% %pre% 204 030 \n %pre%
0000020 \f %pre% 002 002 . . %pre% %pre% 251 # \n %pre% 024 %pre% \f 001
0000040 A n i m a t i o n . j s 252 # \n %pre%
0000060 030 %pre% \r 001 D i r e c t i o n s . j
0000100 s %pre% %pre% %pre% 253 # \n %pre% 024 %pre% \n 001 l i b r
0000120 a r y . j s %pre% %pre% 254 # \n %pre% 030 %pre% 016 001
0000140 l o a d S c r i p t s . j s %pre% %pre%
0000160 255 # \n %pre% 020 %pre% 006 001 M a p . j s %pre% %pre%
0000200 256 # \n %pre% 024 %pre% \f 001 M a p T y p e I
0000220 d . j s 257 # \n %pre% 024 %pre% \v 001 M a p U
0000240 t i l s . j s %pre% 260 # \n %pre% 024 %pre% \t 001
0000260 M a r k e r . j s %pre% %pre% %pre% 261 # \n %pre%
0000300 030 %pre% 020 001 M a r k e r C l u s t e
0000320 r . j s 262 # \n %pre% 034 %pre% 022 001 m a r k
0000340 e r c l u s t e r e r . j s %pre% %pre%
0000360 263 # \n %pre% 024 %pre% \n 001 P o l y g o n .
0000400 j s %pre% %pre% 264 # \n %pre% 024 %pre% \v 001 P o l y
0000420 l i n e . j s %pre% 265 # \n %pre% 030 %pre% 016 001
0000440 S c r i p t s U t i l . j s %pre% %pre%
0000460 266 # \n %pre% 030 %pre% \r 001 T r a v e l M o
0000500 d e . j s %pre% %pre% %pre% 267 # \n %pre% 030 %pre% \r 001
0000520 U n i t S y s t e m . j s %pre% %pre% %pre%
0000540 270 # \n %pre% 240 016 \v 001 W a y p o i n t
0000560 . j s %pre% 305 031 \n %pre% 214 016 022 001 . U n i
0000600 t S y s t e m . j s . s w p %pre% %pre%
0000620 312 031 \n %pre% p 016 022 001 . U n i t S y s
0000640 t e m . j s . s w x %pre% %pre% %pre% %pre% %pre% %pre%
0000660 %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre%
Acima, começamos encontrando o inode do diretório src
( 664488
) e, em seguida, despejamos seu conteúdo no arquivo src.out
e exibimos isso usando od
. Como você pode ver, o conteúdo de todos os arquivos nesse diretório ( Animation.js
, etc.) é visível no dump.
Isso é só um começo - veja a página de manual debugfs
ou digite help
dentro de debugfs
para mais informações.
Se você estiver usando ext4
, poderá encontrar mais informações sobre a estrutura e o layout das entradas de diretório no documentação do kernel .