GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist das Konzept, eine Datei mit null Bytes in Linux zu erstellen?

Eine Datei besteht (grob) aus drei verschiedenen Dingen:

  • Ein "Inode", eine Metadatenstruktur, die festhält, wem die Datei gehört, Berechtigungen und eine Liste von Blöcken auf der Festplatte, die tatsächlich die Daten enthalten.
  • Ein oder mehrere Verzeichniseinträge (die Dateinamen), die auf diesen Inode zeigen
  • Die eigentlichen Datenblöcke selbst

Wenn Sie eine leere Datei erstellen, erstellen Sie nur den Inode und einen Verzeichniseintrag, der auf diesen Inode zeigt. Gleiches gilt für Sparse-Dateien (dd if=/dev/null of=sparse_file bs=10M seek=1 ).

Wenn Sie Hardlinks zu einer bestehenden Datei erstellen, erstellen Sie einfach zusätzliche Verzeichniseinträge, die auf denselben Inode zeigen.

Ich habe die Dinge hier vereinfacht, aber Sie verstehen schon.


touch erstellt einen Inode , und ls -i oder stat zeigt Informationen über den Inode:

$ touch test
$ ls -i test
28971114 test
$ stat test
  File: ‘test’
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 28971114    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/1000)   Gid: ( 1000/1000)
Access: 2017-03-28 17:38:07.221131925 +0200
Modify: 2017-03-28 17:38:07.221131925 +0200
Change: 2017-03-28 17:38:07.221131925 +0200
 Birth: -

Beachten Sie, dass test verwendet 0 Blöcke. Um die angezeigten Daten zu speichern, verwendet der Inode einige Bytes. Diese Bytes werden in der Inode-Tabelle gespeichert. Sehen Sie sich die ext2-Seite für ein Beispiel einer Inode-Struktur an.


ls (oder besser gesagt, die stat(2) Systemaufruf) gibt Ihnen die Größe des Inhalts an der Datei. Wie viel Speicherplatz das Dateisystem für die Buchhaltung benötigt, gehört nicht dazu, und als Implementierungsdetail ist es etwas, das Programme im Allgemeinen nicht sollten kümmern oder sogar wissen. Das Sichtbarmachen der Implementierungsdetails würde die Abstraktion des Dateisystems weniger nützlich machen.


Linux
  1. Linux – Was sind die verschiedenen Möglichkeiten zum Festlegen von Dateiberechtigungen usw. unter Gnu/Linux?

  2. Linux – Welche Dateisysteme unter Linux speichern die Erstellungszeit?

  3. Verstehen Sie die UNIX/Linux-Inodes-Grundlagen mit Beispielen

  4. Was ist die Beschränkung der maximal geöffneten Dateien unter Linux?

  5. Entfernen Sie eine Datei unter Linux mithilfe der Inode-Nummer

Erstellen Sie mit dem Linux MLVWM einen Retro-Apple-Desktop

Was ist umask unter Linux?

Was ist die Shell unter Linux?

Was sind Inodes unter Linux?

Was ist eine .bashrc-Datei unter Linux?

Sichern Sie Linux mit der Sudoers-Datei