Während das bzip2-Befehlszeilenprogramm zum Komprimieren von Dateien verwendet werden kann, gibt es viele andere Tools, mit denen Sie grundlegende Aufgaben ausführen können - wie das Vergleichen solcher Dateien -, ohne sie dekomprimieren zu müssen. Hier, in diesem Tutorial, werden wir die Grundlagen der bzcmp-, bzdiff-, bzmore-, bzless- und bzgrep-Befehle anhand einiger leicht verständlicher Beispiele besprechen.
Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele in diesem Artikel auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.
Linux-Befehle bzcmp, bzdiff, bzmore, bzless und bzgrep
Wir werden jeden dieser Befehle im Q&A-Stil der Präsentation besprechen.
Q1. Wie funktionieren bzcmp- und bzdiff-Befehle?
Wie der Name schon sagt, werden diese Befehle zum Vergleichen von .bz2-Dateien verwendet. Es folgt ihre Syntax:
bzcmp [ cmp_options ] file1 [ file2 ]
bzdiff [ diff_options ] file1 [ file2 ]
Und hier ist, was die Manpage darüber sagt:
Bzcmp and bzdiff are used to invoke the cmp or the diff program on
bzip2 compressed files. All options specified are passed directly to
cmp or diff. If only 1 file is specified, then the files compared are
file1 and an uncompressed file1.bz2. If two files are specified, then
they are uncompressed if necessary and fed to cmp or diff. The exit
status from cmp or diff is preserved.
Hier ist ein einfaches Beispiel für bzcmp und bzdiff:
bzcmp file1.bz2 file2.bz2
bzdiff file1.bz2 file2.bz2
Und der folgende Screenshot zeigt die von diesen Befehlen erzeugte Ausgabe:
Während diese Befehle keine expliziten Befehlszeilenoptionen anbieten, können Sie die Optionen von cmp- und diff-Befehlen verwenden (da diese Tools intern von bzcmp- und bzdiff-Befehlen aufgerufen werden).
Q2. Wie funktionieren bzmore- und bzless-Befehle?
Genau wie more und less sind sowohl bzmore als auch bzless Filter für die CRT-Anzeige, jedoch für komprimierte bz2-Dateien. Um Ihnen eine noch bessere Vorstellung zu geben, ist hier ein Auszug über bzmore aus seiner Manpage:
Bzmore is a filter which allows examination of compressed or plain text
files one screenful at a time on a soft-copy terminal. bzmore works on
files compressed with bzip2 and also on uncompressed files. If a file
does not exist, bzmore looks for a file of the same name with the addi?
tion of a .bz2 suffix.
Bzmore normally pauses after each screenful, printing --More-- at the
bottom of the screen. If the user then types a carriage return, one
more line is displayed. If the user hits a space, another screenful is
displayed. Other possibilities are enumerated later.
Natürlich können Sie diese Befehle auch verwenden, um einfach eine komprimierte Datei anzuzeigen. Hier ist ein Beispiel:
Q3. Wie funktioniert der Befehl bzgrep?
Wie Sie bereits erraten haben, funktioniert bzgrep auch nach dem Vorbild anderer Befehle der bz-Serie, die wir hier erklärt haben. Genauer gesagt ist es grep, aber für komprimierte Dateien. Es folgt ein Auszug aus der Manpage dieses Befehls:
Bzgrep is used to invoke the grep on bzip2-compressed files. Allübergeben
options specified are passed directly to grep. If no file is speci?
fied, then the standard input is decompressed if necessary and fed to
grep. Otherwise the given files are uncompressed if necessary and fed
to grep.
Hier ist ein Beispiel für die Verwendung von bzgrep:
bzgrep "menu" file1.bz2
Der folgende Screenshot zeigt die Ausgabe:
Schlussfolgerung
Wenn Sie also mit komprimierten Dateien (.bz2) arbeiten und grundlegende Operationen wie Suchen, Vergleichen und mehr ausführen möchten, können Sie diese Befehle verwenden. Wir haben hier die Grundlagen besprochen. Weitere Informationen zu diesen Tools finden Sie auf ihren Manpages (hier, hier und hier).