In der Vergangenheit habe ich gelernt, dass in Linux / UNIX-Dateisystemen Verzeichnisse nur Dateien sind, die die Dateinamen und Inode-Nummern der Dateien im Verzeichnis enthalten.
Gibt es eine einfache Art und Weise zu sehen , den Inhalt eines Verzeichnisses? Ich meine die Art und Weise, wie die Dateinamen und Inodes gespeichert / organisiert sind.
Ich bin nicht die Suche nach ls
, find
oder etwas ähnlich. Ich möchte auch nicht den Inhalt der Dateien in einem Verzeichnis sehen. Ich möchte die Implementierung der Verzeichnisse sehen. Wenn jedes Verzeichnis nur eine Textdatei mit Inhalt ist, gibt es möglicherweise eine einfache Möglichkeit, den Inhalt dieser Textdatei anzuzeigen.
In der Bash unter Linux ist es nicht möglich, eine cat folder
. Die Ausgabe ist einfach Is a directory
.
Update Die Frage Wie inspiziert man die Verzeichnisstrukturinformationen einer Unix / Linux-Datei? behebt das gleiche Problem, hat aber keine hilfreiche Lösung wie die von mjturner .
quelle
vi <folder>
Ihren Bedürfnissen entspricht?vim <DIR>
Ist das was du willst?stat
Befehl.stat folder
.cat
hätte geklappt. Dieser Ansatz war jedoch vor Jahrzehnten überholt. Ich kenne keine direkte Möglichkeit, den tatsächlichen Dateisystemspeicher anzuzeigen. Stattdessen gibt es neue Systemaufrufe, um die Informationen in einem standardisierten Format zurückzugeben, das unabhängig vom verwendeten zugrunde liegenden Dateisystem gleich bleibt.Antworten:
Das Tool zum Anzeigen von Inode-Details für ein Dateisystem ist dateisystemspezifisch. Für die
ext2
,ext3
,ext4
Dateisysteme (die am häufigsten verwendeten Linux - Dateisysteme), können Sie verwendendebugfs
, für XFSxfs_db
, für ZFSzdb
. Fürbtrfs
einige Informationen steht derbtrfs
Befehl zur Verfügung.Um zum Beispiel ein Verzeichnis auf einen erkunden
ext4
Dateisystem (in diesem Fall/
istdev/sda1
):Oben beginnen wir damit, den Inode von directory
src
(664488
) zu finden, dessen Inhalt in file abzulegensrc.out
und diesen dann mit anzuzeigenod
. Wie Sie sehen, ist der Inhalt aller Dateien in diesem Verzeichnis (Animation.js
usw.) im Speicherauszug sichtbar.Dies ist nur ein Anfang - die siehe
debugfs
Handbuch Seite oder geben Siehelp
indebugfs
für weitere Informationen.Wenn Sie verwenden
ext4
, finden Sie weitere Informationen zur Struktur und zum Layout der Verzeichniseinträge in der Kerneldokumentation .quelle
od -x
die Verzeichniseintragsdatei sichern.Sie können die Programmiersprache Ihrer Wahl verwenden, das Verzeichnis wie eine Datei öffnen und Bytes aus dem resultierenden Datei-Handle lesen. Das wird Ihnen jedoch nicht viel sagen, da es nur Müll sein wird (mit ein paar erkennbaren Zeichenfolgen), solange Sie nicht wissen, wie es organisiert ist. Wie es organisiert ist, ist so ziemlich ein Implementierungsproblem für das fragliche Dateisystem. Wenn Sie sich eingehend mit diesen Dingen befassen möchten, empfehle ich Ihnen, mit dem Lesen zu beginnen
man dirent.h
. Das sollte ausreichen, um Sie weiter auf das hinzuweisen, was Ihnen gefällt.quelle
Sie können es versuchen (Partition ist ein Beispiel).
Verwenden Sie dump, um Inode-Daten in eine Datei zu schreiben.
Mann ist dein Freund, diese sollten dir einige Ideen geben.
quelle