Eine magische Zahl ist eine Folge von Bytes, die in allen Dateien eines bestimmten Formats verwendet wird, normalerweise an einer bestimmten Position (häufig am Anfang). Da alle Dateien in diesem bestimmten Format diese bestimmte Bytesequenz an dieser bestimmten Position haben und die meisten Dateien in anderen Formaten diese nicht haben, ist die magische Zahl eine Möglichkeit, zu erkennen, in welchem Format eine Datei vorliegt.
Hier wird dieses Konzept auf ein Dateisystemformat angewendet. Beispielsweise hat ein ext2 / ext3 / ext4-Dateisystem immer die Bytes 0x53 0xEF
an den Positionen 1080–1081. Ein reiserfs-Dateisystem beginnt immer ReIsErFs
an Position 65588 (oder ReIsEr2Fs
usw. in neueren Versionen). Andere Dateisysteme haben ähnliche magische Zahlen. Dateisystem-Tools überprüfen das Vorhandensein der magischen Zahl (und möglicherweise anderer Hinweise), um sicherzustellen, dass Sie sie nicht versehentlich für Daten gestartet haben, die in einem Format organisiert sind, mit dem sie nicht umgehen können und das sie beschädigen könnten. Wenn Sie die magische Zahl in einem Dateisystem ändern, weigern sich normale Tools wahrscheinlich, sie zu berühren. Reparaturwerkzeuge könnten klüger sein und eine schlechte magische Zahl als eines der Dinge behandeln, die kaputt gehen könnten.
Der file
Befehl erkennt Dateien anhand ihrer magischen Zahlen. Sie können ausführen, um file -s /dev/sda1
zu sehen, was sich auf der Partition befindet /dev/sda1
. Seine Entscheidungen basieren auf einer Datenbank, die normalerweise in /etc/magic
oder gefunden wird /usr/share/misc/magic
. Bestimmte Befehle verwenden möglicherweise unterschiedliche magische Zahlen, um die Dateiformate zu erkennen, mit denen sie umgehen können.
apt-get install source file
wird gezogen,file-x.yy/magic/Magdir/filesystems
welche genau die Informationen enthielten , nach denen die Frage (und ich) gesucht haben.file /dev/sda1
?file /dev/sda1
wird Ihnen nur sagen, dass dies ein Geräteknoten ist, es sagt nichts über den Inhalt aus. Du brauchst entwederfile </dev/sda1
oderfile -s /dev/sda1
.file < /dev/sda1
scheitert der Hilfetext aus der Datei (fehlender Parameter?), Funktioniert aber-s
super. Vielen Dank.file - </dev/sda1
, weil Siefile
explizit sagen müssen , um von stdin zu lesen. Danke, ich werde es reparieren.