So überprüfen Sie, ob eine Datei in der bash vorhanden ist

How Check If File Exists Bash



Es gibt mehrere Möglichkeiten, die Verfügbarkeit einer Datei unter Linux zu überprüfen. Der Befehl test beim Bash-Scripting ist einer der wichtigsten Ansätze, um die Existenz einer Datei zu überprüfen.
Der Schwerpunkt dieses Handbuchs liegt darin, die Existenz einer Datei in Ihrem System durch Bash-Skripting zu diskutieren:

So überprüfen Sie die Dateiexistenz mit Bash-Skripting:

1) Durch Eingabe des Dateinamens im Terminal:







Zuerst müssen wir eine Bash-Skriptdatei erstellen, verwenden Sie den unten genannten Befehl:



$berührentestdatei.sh

Der Name der von mir erstellten Datei lautet testfile.sh, die Erweiterung .sh gibt die Shell-Skriptdatei an:







Öffnen Sie die testfile.sh in einem beliebigen Texteditor. Schreiben Sie dann das Skript, speichern Sie es mit Speichern.

Eine Möglichkeit besteht darin, eine Datei zu finden, indem Sie den Benutzer im Terminal nach einem Dateinamen fragen.



Verwenden -F um die Existenz der Datei zu überprüfen.

Schreiben Sie das folgende Skript:

#!/bin/bash
rauswerfen 'Geben Sie Ihren Dateinamen ein'
lesenneue Datei1
wenn [ -F '$neueDatei1' ]
dann
rauswerfen 'Datei wurde gefunden'
anders
rauswerfen 'Datei wurde nicht gefunden'
Sein

Gehen Sie zurück zum Terminal und führen Sie die Datei aus, um die Ausgabe zu drucken:

./Dateiname.sh

Die Meldung 'Berechtigung verweigert' wird im Terminal angezeigt.

Machen Sie es ausführbar, indem Sie den unten genannten Befehl ausführen:

$chmod+ x testdatei.sh

Geben Sie den Dateinamen ein und die Ausgabe wird gedruckt:

2) Durch Eingabe des Dateinamens beim Schreiben des Skripts:
Eine andere Möglichkeit, eine Datei zu finden, indem Sie beim Schreiben des Skripts den Dateinamen angeben. Wir haben drei Möglichkeiten, die Verfügbarkeit der Datei zu überprüfen. Der erste verwendet den Befehl test, der zweite if mit einem Ausdruck in eckigen Klammern und der dritte auch mit if, aber doppelten eckigen Klammern, wie unten angegeben:

  1. AUSDRUCK testen.
  2. wenn [ AUSDRUCK ]
  3. wenn [[ AUSDRUCK ]]

Lassen Sie es uns anhand von Beispielen verstehen:

1) testen [ Ausdruck ]
Kopieren Sie das angegebene Skript und fügen Sie es in den Editor ein, speichern Sie es:

#!/bin/bash
Dateiname=Datei1
wenn Prüfung -F '$Dateiname';
dann
rauswerfen '$Dateihat gefunden.'
anders
rauswerfen '$Dateiwurde nicht gefunden'
Sein

Ausgabe:

Da es in meinem Verzeichnis keine solche Datei gibt, zeigt der Code daher die Meldung Datei nicht gefunden an.

2) wenn [ Ausdruck ]

Kopieren Sie das folgende Skript, um zu überprüfen, ob die Datei vorhanden ist oder nicht:

#!/bin/bash
Dateiname=meineDatei.txt
wenn [ -F '$Dateiname' ];
dann
rauswerfen '$Dateinamehat gefunden.'
anders
rauswerfen 'Dateiname wurde nicht gefunden'
Sein

Ausgabe:

3) wenn [[ Ausdruck ]]

Kopieren Sie das unten geschriebene Skript und fügen Sie es auf dem Terminal ein:

#!/bin/bash
Dateiname=Testdatei
wenn [[ -F '$Dateiname' ]];
dann
rauswerfen '$Dateinamehat gefunden.'
anders
rauswerfen '$Dateinamewurde nicht gefunden'
Sein

Ausgabe:

So überprüfen Sie das Verzeichnis:

3) Durch Eingabe des Verzeichnisnamens beim Schreiben eines Skripts

Verwenden Sie die -D Flag, um die Existenz eines Verzeichnisses zu überprüfen.

In dem unten erwähnten Skript ist dir11 die Variable, in der Sie die Datei speichern, die Sie finden; In diesem Beispiel möchte ich überprüfen, ob der Verzeichnisname testDir existiert oder nicht.

#!/bin/bash
dir11=testDir
wenn [ -D '$dir11' ]
dann
rauswerfen 'Verzeichnis wurde gefunden'
anders
rauswerfen 'Verzeichnis wurde nicht gefunden'
Sein

Ausgabe:

2) Durch Eingabe des Dateinamens im Terminal:
Wenn Sie den Befehl im Terminal ausführen, um zu überprüfen, ob das Verzeichnis vorhanden ist oder nicht, müssen Sie den gesuchten Verzeichnisnamen eingeben:

#!/bin/bash
rauswerfen 'Geben Sie Ihren Verzeichnisnamen ein.'
lesenDir1
wenn [ -D 'Verzeichnis1' ]
dann
rauswerfen 'Verzeichnis wurde gefunden'
anders
rauswerfen 'Verzeichnis wurde nicht gefunden'
Sein

Ausgabe:

Überprüfen der Datei ohne Verwendung der if-Anweisung:

Der Testbefehl kann ohne die if-Anweisung ausgeführt werden. Es wird nur die Ausgabe angezeigt, wenn die Datei vorhanden ist; sonst würde es keine Ausgabe geben:

Skript schreiben:

  1. Prüfung -Fmeinedatei.txt&& rauswerfen 'Datei wurde gefunden'

  2. [ -Fmeinedatei.txt] && rauswerfen '$Dateiwurde gefunden.'

  3. [[ -Fmeinedatei.txt]] && rauswerfen '$Dateiwurde gefunden.'

Ausgabe:

Überprüfen des Verzeichnisses ohne Verwendung der if-Anweisung:

Verwenden Sie die folgenden Anweisungen, um zu überprüfen, ob ein Verzeichnis vorhanden ist oder nicht:

  1. [[ -DtestDir]] && rauswerfen 'Verzeichnis existiert'

  2. 2) [ -DtestDir] && rauswerfen 'Verzeichnis existiert'

Ausgabe:

Mehrere Dateien/Verzeichnisse prüfen:

1) Mehrere Dateien mit if-Anweisungen prüfen:
Verwenden Sie das Flag -a, um die Existenz verschiedener Dateien zu überprüfen, anstatt verschachtelte if/else-Anweisungen zu verwenden:

#!/bin/bash
wenn [ -Fneue_datei.txt-zu -FneueDatei.txt];dann
rauswerfen 'Beide Dateien existieren.'
Sein

Ein anderer Weg ist:

#!/bin/bash
wenn [[ -Fneue_datei.txt&& -FneueDatei.txt]];dann
rauswerfen 'Beide Dateien existieren.'
Sein

Ausgabe:

2) Überprüfen mehrerer Dateien ohne die if-Anweisung:
Verwenden Sie die folgende Anweisung, um mehrere Dateien gleichzeitig zu überprüfen, 1ohne if zu verwenden:

  1. [[ -Fneue_datei.txt&& -FneueDatei.txt]] && rauswerfenBeide Dateien werden beendet.

  2. [[ -Fneue_datei.txt&& -FneueDatei.txt]] && rauswerfenBeide Dateien werden beendet.

Ausgabe:

Abschluss:

In diesem Artikel wurde gezeigt, wie Sie mithilfe von Bash-Skripting eine Datei oder ein Verzeichnis überprüfen. Wir haben verschiedene Optionen verwendet, um die Verfügbarkeit einer Datei zu überprüfen. Zuerst verwenden wir den Testbefehl mit verschiedenen Flags. Dann lernten wir die Verwendung von if, verschachteltem if-else und ohne die if-Anweisungen, um die Datei oder das Verzeichnis zu überprüfen. Wir haben uns auch angeschaut, wie man mehrere Dateien oder Verzeichnisse überprüft.