Wenn ich tail möchte eine 25 GB große Textdatei, macht den tail Befehl die ganze Datei lesen?
Da eine Datei auf einer Festplatte verstreut sein kann, nehme ich an, dass dies der Fall sein muss, aber ich verstehe solche Interna nicht gut.
Akzeptierte Antwort:
Nein, tail liest nicht die ganze Datei, es sucht bis zum Ende, liest dann Blöcke rückwärts, bis die erwartete Anzahl von Zeilen erreicht ist, zeigt dann die Zeilen in der richtigen Richtung bis zum Ende der Datei an und überwacht möglicherweise die Datei, wenn das -f Option verwendet wird.
Beachten Sie jedoch, dass tail hat keine andere Wahl, als die gesamten Daten zu lesen, wenn eine nicht durchsuchbare Eingabe bereitgestellt wird, beispielsweise beim Lesen aus einer Pipe.
In ähnlicher Weise, wenn Sie aufgefordert werden, nach Zeilen zu suchen, die am Anfang der Datei beginnen, indem Sie tail -n +linenumber verwenden Syntax oder tail +linenumber nicht standardmäßige Option, wenn unterstützt, tail liest offensichtlich die gesamte Datei (sofern nicht unterbrochen).