Wie man prüft, ob eine Datei in Linux leer ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie in Linux mithilfe verschiedener Befehlszeilentools prüfen können, ob eine Datei leer ist. Sie werden drei gängige Methoden untersuchen: die Verwendung des Befehls test -s zur Überprüfung der Dateigröße, die Anwendung des Befehls wc -c zur Zählung der Bytes in einer Datei und schließlich die direkte Prüfung des Dateiinhalts mit dem Befehl cat. Anhand praktischer Beispiele werden Sie verstehen, wie jede Methode funktioniert und wie Sie deren Ausgabe interpretieren können, um festzustellen, ob eine Datei Daten enthält.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/test("Condition Testing") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/wc("Text Counting") subgraph Lab Skills linux/echo -.-> lab-558711{{"Wie man prüft, ob eine Datei in Linux leer ist"}} linux/test -.-> lab-558711{{"Wie man prüft, ob eine Datei in Linux leer ist"}} linux/touch -.-> lab-558711{{"Wie man prüft, ob eine Datei in Linux leer ist"}} linux/cat -.-> lab-558711{{"Wie man prüft, ob eine Datei in Linux leer ist"}} linux/wc -.-> lab-558711{{"Wie man prüft, ob eine Datei in Linux leer ist"}} end

Dateigröße mit test -s prüfen

In diesem Schritt lernen Sie, wie Sie mithilfe des test-Befehls mit der Option -s prüfen können, ob eine Datei existiert und nicht leer ist. Der test-Befehl ist ein integrierter Shell-Befehl, der zur Auswertung von bedingten Ausdrücken verwendet wird. Er wird oft in Shell-Skripten zur Entscheidungsfindung eingesetzt.

Die Option -s bei test prüft, ob eine Datei existiert und eine Größe größer als Null hat (d. h., sie ist nicht leer).

Zunächst erstellen wir eine leere Datei und eine nicht-leere Datei in Ihrem ~/project-Verzeichnis.

Öffnen Sie das Terminal, wenn es noch nicht geöffnet ist. Standardmäßig sollten Sie sich im ~/project-Verzeichnis befinden.

Erstellen Sie eine leere Datei mit dem Namen empty_file.txt:

touch empty_file.txt

Nun erstellen Sie eine Datei mit dem Namen non_empty_file.txt und fügen Sie ihr einige Textzeilen hinzu, indem Sie den echo-Befehl und den Umleitungsoperator > verwenden. Der Operator > leitet die Ausgabe eines Befehls in eine Datei um. Wenn die Datei nicht existiert, wird sie erstellt. Wenn sie existiert, wird ihr Inhalt überschrieben.

echo "This file has content." > non_empty_file.txt

Nun verwenden wir den test -s-Befehl, um diese Dateien zu prüfen. Der test-Befehl gibt bei Erfolg keine Ausgabe zurück. Er signalisiert Erfolg oder Misserfolg über seinen Exit-Status. Ein Exit-Status von 0 bedeutet Erfolg (die Bedingung ist wahr), und ein Exit-Status ungleich Null bedeutet Misserfolg (die Bedingung ist falsch).

Wir können den Exit-Status des vorherigen Befehls mithilfe der speziellen Variable $? prüfen.

Prüfen Sie die leere Datei:

test -s empty_file.txt
echo $?

Sie sollten die Ausgabe 1 sehen, was darauf hinweist, dass die Bedingung (Datei existiert und ist nicht leer) für empty_file.txt falsch ist.

Nun prüfen Sie die nicht-leere Datei:

test -s non_empty_file.txt
echo $?

Sie sollten die Ausgabe 0 sehen, was darauf hinweist, dass die Bedingung für non_empty_file.txt wahr ist.

Dies ist eine grundlegende Methode, um Dateieigenschaften in der Shell-Skripting zu prüfen. Sie können dies nutzen, um sicherzustellen, dass eine Datei Inhalt hat, bevor Sie versuchen, sie zu verarbeiten.

Klicken Sie auf Weiter, um fortzufahren.

Anzahl der Dateibytes mit wc -c zählen

In diesem Schritt lernen Sie, wie Sie die Anzahl der Bytes in einer Datei mithilfe des wc-Befehls mit der Option -c zählen können. Der wc-Befehl ist ein Hilfsprogramm, das die Anzahl der Zeilen, Wörter und Bytes für jede Datei ausgibt.

Die Option -c teilt wc mit, nur die Bytes zu zählen.

Wir verwenden die Dateien, die wir im vorherigen Schritt erstellt haben: empty_file.txt und non_empty_file.txt.

Zunächst zählen wir die Bytes in empty_file.txt. Stellen Sie sicher, dass Sie sich im ~/project-Verzeichnis befinden.

wc -c empty_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

0 empty_file.txt

Dies zeigt, dass empty_file.txt 0 Bytes hat, was sinnvoll ist, da es sich um eine leere Datei handelt.

Nun zählen wir die Bytes in non_empty_file.txt:

wc -c non_empty_file.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

23 non_empty_file.txt

Die Zahl 23 repräsentiert die Anzahl der Bytes in der Datei "This file has content.", gefolgt von einem Zeilenumbruchzeichen, das von echo hinzugefügt wird. Jedes Zeichen nimmt normalerweise ein Byte ein.

Der wc-Befehl ist sehr nützlich, um schnell Informationen über die Größe von Dateien zu erhalten. Sie können wc auch ohne Optionen verwenden, um die Anzahl der Zeilen, Wörter und Bytes zu erhalten. Versuchen Sie, wc non_empty_file.txt auszuführen, um den Unterschied zu sehen.

Klicken Sie auf Weiter, um zum nächsten Schritt zu gelangen.

Dateiinhalte mit dem cat-Befehl anzeigen

In diesem Schritt lernen Sie, wie Sie die Inhalte einer Datei mithilfe des cat-Befehls anzeigen können. Der cat-Befehl ist die Abkürzung für "concatenate" (zusammenfügen) und wird hauptsächlich verwendet, um den Inhalt von Dateien anzuzeigen.

Wir verwenden die Dateien, die wir in den vorherigen Schritten erstellt haben: empty_file.txt und non_empty_file.txt. Stellen Sie sicher, dass Sie sich im ~/project-Verzeichnis befinden.

Zunächst versuchen Sie, den Inhalt von empty_file.txt anzuzeigen:

cat empty_file.txt

Da empty_file.txt leer ist, wird der cat-Befehl keine Ausgabe anzeigen.

Nun zeigen Sie den Inhalt von non_empty_file.txt an:

cat non_empty_file.txt

Sie sollten den Inhalt sehen, den wir im vorherigen Schritt hinzugefügt haben:

This file has content.

Der cat-Befehl ist eine einfache und schnelle Möglichkeit, den gesamten Inhalt einer Datei direkt in Ihrem Terminal anzuzeigen. Seien Sie vorsichtig, wenn Sie cat für sehr große Dateien verwenden, da es alles auf Ihrem Bildschirm ausgibt, was überwältigend sein kann. Für große Dateien sind Befehle wie less oder more besser geeignet, da sie es Ihnen ermöglichen, den Inhalt seitenweise anzuzeigen.

Sie können cat auch verwenden, um die Inhalte mehrerer Dateien zusammenzufügen und anzuzeigen. Beispielsweise würde cat file1.txt file2.txt, wenn Sie file1.txt und file2.txt hätten, den Inhalt von file1.txt gefolgt vom Inhalt von file2.txt anzeigen.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie in Linux überprüfen können, ob eine Datei leer ist, indem Sie den test -s-Befehl verwenden. Dieser Befehl überprüft, ob eine Datei existiert und eine Größe größer als Null hat. Er gibt einen Exit-Status von 0 für wahr (nicht leer) und 1 für falsch (leer oder nicht existent) zurück. Sie haben das Erstellen von leeren und nicht-leeren Dateien geübt und deren Status mithilfe von test -s überprüft sowie den Exit-Status mit $? abgefragt.