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
Sie können sehen, dass die beiden Dateien im Home-Verzeichnis erstellt wurden.
Ö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.
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.
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.
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
Nun müssen Sie etwas Text in der Datei Test.txt hinzufügen, um das Ergebnis zu ändern, wie in der Abbildung unten gezeigt.
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.
Sie können auch die folgenden beiden Befehle verwenden, um zu überprüfen, ob die Datei leer ist:
$ cat Test.txt
$ file Test.txt
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.
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.
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
Sie können die Datei SymbolicFile.sh im Home-Verzeichnis sehen, wie in der folgenden Abbildung gezeigt.
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
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
Listen Sie nochmals alle Verzeichnisse und Dateien auf. Sie können sehen, dass ein Softlink erstellt wurde.
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.
Sie können beide Dateien in der unteren Abbildung sehen.
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.
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.
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.
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.
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.
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.