Shopware Livestream #1: Theme Entwicklung
Inhaltsverzeichnis:
- Überprüfen Sie, ob die Datei vorhanden ist
- Überprüfen Sie, ob das Verzeichnis vorhanden ist
- Überprüfen Sie, ob die Datei nicht vorhanden ist
- Überprüfen Sie, ob mehrere Dateien vorhanden sind
- Dateitest-Operatoren
- Fazit
Beim Schreiben von Shell-Skripten kommt es häufig vor, dass Sie eine Aktion ausführen müssen, die davon abhängt, ob eine Datei vorhanden ist oder nicht.
In Bash können Sie mit dem Befehl test prüfen, ob eine Datei vorhanden ist, und den Dateityp bestimmen.
Der Testbefehl hat eine der folgenden Syntaxformen:
Überprüfen Sie, ob die Datei vorhanden ist
Bei der Überprüfung, ob eine Datei vorhanden ist, werden am häufigsten die Operatoren
-e
und
-f
. Die erste prüft, ob eine Datei unabhängig vom Typ vorhanden ist, während die zweite nur dann true zurückgibt, wenn es sich bei der DATEI um eine reguläre Datei handelt (kein Verzeichnis oder Gerät).
Die am besten lesbare Option bei der Überprüfung, ob eine Datei vorhanden ist oder nicht, ist die Verwendung des Befehls test in Kombination mit der Anweisung if. In den folgenden Ausschnitten wird überprüft, ob die Datei
/etc/resolv.conf
vorhanden ist:
FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi
FILE=/etc/resolv.conf if; then echo "$FILE exist" fi
FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi
Wenn Sie eine andere Aktion ausführen möchten, die davon abhängt, ob die Datei vorhanden ist oder nicht, verwenden Sie einfach das Konstrukt if / then:
FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi
Verwenden Sie immer doppelte Anführungszeichen, um Probleme beim Umgang mit Dateien zu vermeiden, deren Namen Leerzeichen enthalten.
Sie können den Befehl test auch ohne die Anweisung if verwenden. Der Befehl nach dem Operator
&&
wird nur ausgeführt, wenn der Beendigungsstatus des Testbefehls wahr ist.
test -f /etc/resolv.conf && echo "$FILE exist"
&& echo "$FILE exist"
] && echo "$FILE exist"
&& { echo "$FILE exist"; cp "$FILE" /tmp/; }
Im Gegensatz zu
&&
steht die Anweisung nach dem
||
Der Operator wird nur ausgeführt, wenn der Beendigungsstatus des Testbefehls
false
.
&& echo "$FILE exist" || echo "$FILE does not exist"
Überprüfen Sie, ob das Verzeichnis vorhanden ist
Mit dem Operator
-d
können Sie testen, ob eine Datei ein Verzeichnis ist oder nicht.
Um beispielsweise zu überprüfen, ob das Verzeichnis
/etc/docker
vorhanden ist, würden Sie Folgendes verwenden:
FILE=/etc/docker if; then echo "$FILE is a directory" fi
&& echo "$FILE is a directory"
Sie können auch die doppelten Klammern
, 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));
Überprüfen Sie, ob die Datei nicht vorhanden ist
Ähnlich wie in vielen anderen Sprachen kann der Testausdruck mit
!
Negiert werden
!
(Ausrufezeichen) logisch nicht Operator:
FILE=/etc/docker if; then echo "$FILE does not exist" fi
Das gleiche wie oben:
&& echo "$FILE does not exist"
Überprüfen Sie, ob mehrere Dateien vorhanden sind
Anstatt komplizierte verschachtelte if / else-Konstrukte zu verwenden, können Sie
-a
(oder
&&
with
; then echo "$FILE is a directory" fi
verwenden.
-a
Sie
; then echo "$FILE is a directory" fi
FILE=/etc/docker if; then echo "$FILE is a directory" fi
Äquivalente Varianten ohne Verwendung der IF-Anweisung:
&& echo "both files exist"
Dateitest-Operatoren
Der Befehl test enthält die folgenden FILE-Operatoren, mit denen Sie bestimmte Dateitypen testen können:
-
-b
FILE
- True, wenn die DATEI existiert und eine spezielle Blockdatei ist.-c
FILE
- True, wenn die DATEI existiert und eine Sonderzeichendatei ist.-d
FILE
- True, wenn die DATEI existiert und ein Verzeichnis ist.-e
FILE
- True, wenn die DATEI existiert und eine Datei ist, unabhängig vom Typ (Knoten, Verzeichnis, Socket usw.).-f
FILE
- True, wenn die DATEI existiert und eine reguläre Datei ist (kein Verzeichnis oder Gerät).-G
FILE
- True, wenn die DATEI existiert und dieselbe Gruppe wie der Benutzer hat, der den Befehl ausführt.-h
FILE
- True, wenn die DATEI existiert und eine symbolische Verknüpfung ist.-g
FILE
- True, wenn die DATEI existiert und das Flag set-group-id (sgid) gesetzt ist.-k
FILE
- True, wenn die DATEI existiert und ein Sticky-Bit-Flag gesetzt ist.-L
FILE
- True, wenn die DATEI existiert und eine symbolische Verknüpfung ist.-O
FILE
- True, wenn die DATEI vorhanden ist und dem Benutzer gehört, der den Befehl ausführt.-p
FILE
- True, wenn die DATEI existiert und eine Pipe ist.-r
FILE
- True, wenn die DATEI existiert und lesbar ist.-S
FILE
- True, wenn die DATEI existiert und ein Socket ist.-s
FILE
- True, wenn die DATEI vorhanden ist und eine Größe ungleich Null hat.-u
FILE
- TRUE, wenn das Flag EXISTENT und SET-BENUTZER-ID (SUID) gesetzt ist.-w
FILE
- True, wenn die DATEI existiert und beschreibbar ist.-x
FILE
- True, wenn die DATEI existiert und ausführbar ist.
Fazit
In diesem Handbuch haben wir Ihnen gezeigt, wie Sie mithilfe von Bash überprüfen können, ob eine Datei oder ein Verzeichnis vorhanden ist.
Bash-TerminalKann nicht mehr als eine Datei oder ein Ordner ausgewählt werden. Unter Windows können nicht mehr als eine Datei oder ein Ordner ausgewählt werden.
Dieser Beitrag hilft Ihnen, wenn Sie nicht mehrere Dateien oder Ordner auswählen können Zeit, entweder mit Select All oder Strg + A Tastaturkombination in Windows 10/8/7.
Fehler 0x80080015 vorhanden ist. Die Aktivierung erfordert, dass ein Anzeigename unter dem CLSID-Schlüssel vorhanden ist
Dieser Artikel wird es Ihnen zeigen wie man Fehler 0x80080015 für Windows Defender repariert - Die Aktivierung erfordert, dass ein Anzeigename unter dem CLSID-Schlüssel vorhanden ist.
So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Python vorhanden ist
Beim Schreiben von Python-Skripten möchten Sie möglicherweise nur dann eine bestimmte Aktion ausführen, wenn eine Datei oder ein Verzeichnis vorhanden ist oder nicht. Beispielsweise möchten Sie möglicherweise Daten in eine Konfigurationsdatei lesen oder schreiben oder die Datei nur dann erstellen, wenn sie noch nicht vorhanden ist.