Wie man Bash-Datei-Testoperatoren unter Linux verwendet

Dateitestoperatoren werden unter Linux verwendet, um Attribute von Dateien zu überprüfen und zu verifizieren, wie z. B. die Eigentümerschaft oder ob es sich um einen Symlink handelt. Jeder Testoperator hat einen bestimmten Zweck. Die wichtigsten Operatoren sind -e und -s. In diesem Artikel lernen Sie, Dateien mit der if-Anweisung zu testen, gefolgt von einigen wichtigen Testoperatoren unter Linux.

In diesem Artikel werden wir die folgenden Testoperatoren behandeln:

  • if -e Testoperator
  • Wenn -s Testoperator
  • Wenn -d Testoperator
  • Wenn -h Testoperator
  • Wenn -r Testoperator
  • Wenn -O Testoperator

Verwendung von if -e Operator

Das Hauptziel der Verwendung des if-e-Testoperators in Centos 8 besteht darin, zu überprüfen, ob sich die spezifische Datei im Verzeichnis befindet oder nicht. Wenn Sie also die Existenz einer Datei mit if-e überprüfen wollen, müssen Sie die folgenden Schritte befolgen:

Erstellen Sie zwei neue Dateien mit den Namen Test.txt und FileTestOperators.sh. Die Erweiterung .sh gehört zur Bash-Datei. Sie können beide direkt im Home-Verzeichnis oder mit dem folgenden Befehl erstellen:

$ touch Test.txt
$ touch FileTestOperators.sh

Wenn Sie authentifizieren möchten, ob die Datei erstellt wurde oder nicht, verwenden Sie den folgenden ls Befehl:

$ ls -l Test.txt

Erstellen einer Testdatei

Operator-Datei erstellen

Sie können sehen, dass die beiden Dateien im Home-Verzeichnis erstellt wurden.

Dateien im Datei-Explorer

Öffnen Sie die Datei FileTestOperators.sh und schreiben Sie das Skript darin auf, wie in der Abbildung unten gezeigt. Wir haben eine Variablendatei initialisiert und ihr die Datei Test.txt als Wert übergeben. In der If-Anweisung haben wir den Operator -e, der verwendet wird, um die Existenz der Datei Test.txt unter Verwendung der variablen Datei zu bestätigen.

Skript 1

Führen Sie den unten stehenden Befehl aus, um die Existenz der Datei zu überprüfen:

$ bash FileTestOperators.sh

Da die Datei im Verzeichnis existiert, wird die Ausgabe True sein.

Skript ausführen 1

Verwendung des if -s Operators

Der Zweck der Verwendung des if-s-Testoperators in Centos 8 ist es, zu überprüfen, ob die angegebene Datei existiert und leer ist oder nicht. Wenn Sie sie also mit if-e überprüfen wollen, müssen Sie die folgenden Schritte befolgen:

Wir werden die gleichen Dateien verwenden, mit einer geringfügigen Änderung in der Datei FileTestOperators.sh. Sie müssen nur den Operator -s anstelle von -e in der if-Anweisung ändern.

Skript 2

Führen Sie den unten erwähnten Befehl aus, um zu prüfen, ob die Datei leer ist oder nicht:

$ bash FileTestOperators.sh

Da die Datei leer ist, ist die durch den Operator -s erzeugte Ausgabe False

Skript ausführen 2

Nun müssen Sie etwas Text in der Datei Test.txt hinzufügen, um das Ergebnis zu ändern, wie in der Abbildung unten gezeigt.

Test-Datei

Führen Sie erneut den unten genannten Befehl aus:

$ bash FileTestOperators.sh

Da die Datei diesmal nicht leer ist, wird die durch den Operator -s erzeugte Ausgabe True sein, wie in der Abbildung gezeigt.

Test erneut durchführen

Sie können auch die folgenden beiden Befehle verwenden, um zu überprüfen, ob die Datei leer ist:

$ cat Test.txt
$ file Test.txt

Datei ist leer

Verwendung des if -d Operators

Das Ziel der Verwendung des if-d-Testoperators in Centos 8 ist es, zu überprüfen, ob die spezifische Datei selbst ein Verzeichnis ist oder nicht. Wenn Sie ihn also mit if-d überprüfen wollen, sollten Sie die unten erwähnten Schritte befolgen:

Auch hier verwenden wir die gleichen beiden Dateien mit einer geringfügigen Änderung in der Bash-Datei FileTestOperators.sh. Wir müssen den Operator -s mit dem Operator -d in der if-Anweisung ändern, wie in der Abbildung unten gezeigt.

Testskript 4

Führen Sie also den unten erwähnten Befehl aus, um zu prüfen, ob die Datei ein Verzeichnis ist oder nicht:

$ bash FileTestOperators.sh

Wie wir wissen, ist die Datei Test.txt kein Verzeichnis, weshalb der Operator -d, der False Test.txt ausgibt, kein Verzeichnis ist, wie in der Abbildung unten gezeigt.

Test durchführen

Verwendung des if -h-Operators

Der if-h-Testoperator wird verwendet, um zu prüfen, ob die Datei ein symbolischer (Soft-)Link ist oder nicht. Wenn Sie also die Existenz einer Datei mit if-h überprüfen wollen, müssen Sie die folgenden Schritte durchlaufen:

Erstellen Sie eine neue Datei mit dem Namen SymbolicFile.sh. Sie können sie direkt im Home-Verzeichnis oder mit dem folgenden Befehl erstellen:

$ touch SymbolicFile.sh

Testdatei

Sie können die Datei SymbolicFile.sh im Home-Verzeichnis sehen, wie in der folgenden Abbildung gezeigt.

Symbolischer Link

Sie können alle Verzeichnisse und Dateien mit dem Befehl ls auflisten. Sie können sehen, dass die Datei SymbolicFile.sh ebenfalls aufgelistet ist, wie im Bild gezeigt.

$ ls –l

Symlink

Erstellen Sie einen symbolischen Link mit einem einfachen Link-Befehl. In diesem Befehl bezieht sich -s auf einen Softlink, SymbolicFile.sh ist eine Datei, deren Link erstellt wird, und NewSymbolicFile.sh ist ein symbolischer Link.

$ ln -s SymbolicFile.sh NewSymbolicFile.sh

Test für Symlinks

Listen Sie nochmals alle Verzeichnisse und Dateien auf. Sie können sehen, dass ein Softlink erstellt wurde.

Test durchführen

Wir verwenden also wieder die Bash-Datei FileTestOperators.sh mit einer kleinen Änderung: Ändern Sie den Operator -d mit dem Operator -h in der if-Anweisung. Dieses Mal müssen wir auch einen Dateinamen ändern. Wir müssen eine Datei verwenden, die selbst ein symbolischer Link ist, z.B. NewSymbolicFile.sh.

Suche nach Symlinks

Sie können beide Dateien in der unteren Abbildung sehen.

Dateien

Führen Sie nun den untenstehenden Befehl aus:

$ bash FileTestOperators.sh

Wie wir wissen, ist die Datei NewSymbolicFile.sh ein symbolischer Link, deshalb ist der Operator -h, der True NewSymbolicFile.sh ausgibt, ein symbolischer Link, wie im unteren Bild gezeigt.

Symlink-Test ausführen

Verwendung des if -r Operators

Der if -r-Testoperator wird verwendet, um die Lesbarkeit der Datei zu überprüfen, z.B. ob die Datei lesbar ist oder nicht. Wenn Sie sie also mit if-r prüfen wollen, müssen Sie diese Schritte befolgen:

Wieder verwenden wir die Bash-Datei Test.txt und FileTestOperators.sh mit einer kleinen Änderung. Ändern Sie den Operator -h mit dem Operator -r in der if-Anweisung und weisen Sie die Datei Test.txt als Wert der variablen Datei zu.

Prüfen, ob Datei lesbar ist

Führen Sie nun den folgenden Befehl aus:

$ bash FileTestOperators.sh

Da wir wissen, dass die Datei Test.txt lesbar ist, gibt der Operator -r den Wert True! Test.txt lesbar ist.

Lesbarkeitstest ausführen

Hinweis: Verwenden Sie die Operatoren -w und -x, um zu überprüfen, ob die Datei beschreibbar und ausführbar ist oder nicht.

Verwendung des if -O-Operators

Der Zweck des if -O-Testoperators wird verwendet, um zu überprüfen, ob die Datei einem aktuellen Benutzer gehört oder nicht. Um ihn also mit if-O zu überprüfen, müssen Sie diese Schritte durchlaufen:

Auch hier verwenden wir die Bash-Datei Test.txt und FileTestOperators.sh mit einer kleinen Änderung: Ändern Sie den Operator -r mit dem Operator -O in der if-Anweisung und weisen Sie die Datei Test.txt als Wert der variablen Datei zu.

Eigentumstest in bash

Führen Sie nun den folgenden Befehl aus:

$ bash FileTestOperators.sh

Da wir wissen, dass die Datei „Test.txt“ bereits im Besitz des aktuellen Benutzers ist, gibt der Operator -O die Ausgabe True Test.txt is owned by a current user aus.

Test durchführen

Schlussfolgerung

In diesem Artikel haben Sie die wichtigsten und unterschiedlichsten Dateitestoperatoren und ihre Arbeit in Centos 8 kennengelernt. Ich hoffe, dass Sie nun in der Lage sind, Dateien zu erstellen, die Existenz von Dateien zu überprüfen, die Lesbarkeit von Dateien zu überprüfen, die Eigentümerschaft von Dateien zu überprüfen und Softlinks zu erstellen. Die Benutzer können sich wohl fühlen, nachdem sie diesen Artikel gründlich verfolgt haben.

Das könnte dich auch interessieren …