Die voreingestellte Speichermenge, die von verwendet wird, less
hängt davon ab, ob eine Datei oder eine Pipe gelesen wird. es ist nicht klar, was passiert, wenn aus einer Datei umgeleitet Eingang zu lesen ( less < FilePath
statt less FilePath
).
Der folgende Auszug aus der Manualpage (auf Ununtu 16.04) zeigt, wie Sie den Speicher für die less
Zuweisung steuern : -
-b n oder --buffers = n
Gibt die Menge an Pufferplatz an, die weniger für jede Datei in Kilobyte (1024 Byte) benötigt wird. Standardmäßig werden für jede Datei 64 KB Pufferplatz verwendet (es sei denn, die Datei ist eine Pipe; siehe Option -B ). Die Option -b gibt stattdessen an, dass für jede Datei n Kilobyte Pufferplatz verwendet werden soll. Wenn n ist -1, Pufferraum ist unbegrenzt; Das heißt, die gesamte Datei kann in den Speicher eingelesen werden.
-B oder --auto-Puffer
Wenn Daten aus einer Pipe gelesen werden, werden die Puffer standardmäßig automatisch nach Bedarf zugewiesen. Wenn eine große Datenmenge aus der Pipe gelesen wird, kann dies dazu führen, dass viel Speicherplatz zugewiesen wird. Die Option -B deaktiviert die automatische Zuweisung von Puffern für Pipe, sodass nur 64 K (oder der durch die Option -b angegebene Speicherplatz ) für die Pipe verwendet wird. Warnung: Die Verwendung von -B kann zu einer fehlerhaften Anzeige führen, da nur der zuletzt angezeigte Teil der Pipe-Daten im Speicher verbleibt. frühere Daten gehen verloren.
Ich lese dies dahingehend, dass beim Lesen aus einer Pipe -b nicht verwendet wird, es sei denn, -B ist auch eine Option. Wenn Sie dies bei jedem Lauf angeben möchten, fügen Sie export LESS='-B'
Ihrer Umgebung hinzu (in bash
diesem Fall wäre dies eine Zeile ~/.bashrc
).
Beachten Sie, dass dies den Speicherzugriffsversuch einschränken less
wird, unabhängig davon, ob der Speicher durch unzureichenden Swap-Speicherplatz oder durch den maximalen Programmspeicherplatz von 4 GB auf einem 32-Bit-Betriebssystem eingeschränkt ist.