BASH - Testen Sie, ob Datei oder Verzeichnis existiert

BASH - Testen Sie, ob Datei oder Verzeichnis existiert

Wenn Sie überprüfen müssen, ob eine Datei oder ein Verzeichnis vorliegt, können Sie den Testbefehl verwenden. Es wird wahr zurückgegeben, wenn es eine Datei oder ein Verzeichnis gibt, und sonst falsch. Der Testbefehl kann mit einer der folgenden Parameter verwendet werden:

Dieser Artikel enthält nur wenige Details zum Test, wenn eine Datei oder ein Verzeichnis im System vorhanden ist. Dies kann sehr hilfreich für Sie beim Schreiben von Shell Scripting sein.

#1. Test, wenn eine Datei vorliegt

Wenn wir Inhalte hinzufügen mussten oder Dateien aus dem Skript erstellen müssen. Stellen Sie zunächst sicher, dass die Datei bereits existiert oder nicht. Zum Beispiel erstellt eines meiner Skripte Protokolle in der Datei /tmp/testfile.Protokoll und wir müssen sicherstellen, dass diese Datei existiert oder nicht

#!/bin/bash if [-f/tmp/testFile.log] dann echo "Datei existiert" fi
123456#!/bin/bash if [-f/tmp/testFile.log] dann echo "Datei existiert" fi

Die obigen Aussagen können auch mit dem geschrieben werden prüfen Schlüsselwort wie unten

#!/bin/bash wenn test -f/tmp/testfile.Protokoll dann echo "Datei existiert" fi
123456#!/bin/bash wenn test -f/tmp/testfile.logthen echo "Datei existiert" fi

Oder in einer einzigen Zeile können wir es wie unten schreiben. Dies ist sehr nützlich beim Schreiben in Shell Scripting.

[-f /tmp /testfile.log] && echo "Datei existiert"
1[-f /tmp /testfile.log] && echo "Datei existiert"

Um einen Teil des obigen Befehls hinzuzufügen

[-f /tmp /testfile.log] && echo "Datei existiert" || echo "Datei nicht existiert"
1[-f /tmp /testfile.log] && echo "Datei existiert" || echo "Datei nicht existiert"

#2. Test, wenn das Verzeichnis existiert

Manchmal müssen wir Dateien in einem bestimmten Verzeichnis erstellen oder aus einem anderen Grund ein Verzeichnis benötigen. Wir sollten sicherstellen, dass das Verzeichnis existiert. Zum Beispiel überprüfen wir /tmp/mydir existiert für nicht.

#!/bin/bash if [-d/tmp/mydir], dann das echo "Verzeichnis existiert" fi
123456#!/bin/bash if [-d/tmp/mydir], dann das echo "Verzeichnis existiert" fi

Die obigen Aussagen können auch mit dem geschrieben werden prüfen Schlüsselwort wie unten

#!/bin/bash wenn test -d/tmp/mydir dann das echo "Verzeichnis existiert" fi
123456#!/bin/bash if test -d/tmp/mydirthen echo "Verzeichnis existiert" fi

Oder in einer einzigen Zeile können wir es wie unten schreiben

[-d /tmp /mydir] && echo "Verzeichnis existiert"
1[-d /tmp /mydir] && echo "Verzeichnis existiert"

#3. Datei/Verzeichnis erstellen, wenn nicht existiert

Dies ist die beste Praxis, um die Existenz von Dateien zu überprüfen, bevor Sie sie erstellen. Andernfalls erhalten Sie eine Fehlermeldung. Dies ist sehr hilfreich beim Erstellen von Shell -Skripten, die während der Laufzeit zur Datei- oder Verzeichniserstellung erforderlich sind.

Für Datei:

[ ! -f /tmp /testfile.log] && touch /tmp /testfile.Protokoll
1[ ! -f /tmp /testfile.log] && touch /tmp /testfile.Protokoll

Für Verzeichnis:

[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir
1[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir