In diesem Artikel schreiben wir ein Bash-Skript, um zu überprüfen, ob Dateien vorhanden sind oder nicht.
Syntax :
- Test [Ausdruck]
- [ Ausdruck ]
- [[ Ausdruck ]]
Hier schreiben wir im Ausdruck Parameter Und Dateiname . Sehen wir uns einige Parameter an, die im Ausdruck verwendet werden können: –
- – F: Es gibt True zurück, wenn die Datei als allgemeine (reguläre) Datei existiert. -d: Gibt „True“ zurück, wenn ein Verzeichnis vorhanden ist. -e: Gibt True zurück, wenn ein Dateityp vorhanden ist. -c: Gibt True zurück, wenn die Zeichendatei vorhanden ist. -r: Gibt True zurück, wenn eine lesbare Datei vorhanden ist.
- – In : Gibt True zurück, wenn eine beschreibbare Datei vorhanden ist . -x: Gibt True zurück, wenn eine ausführbare Datei vorhanden ist. -p: Gibt True zurück, wenn die Datei als Pipe existiert. -S: Gibt True zurück, wenn die Datei als Socket existiert. -s: Gibt „True“ zurück, wenn eine Datei vorhanden ist und die Größe der Datei nicht Null ist. -L: Gibt „True“ zurück, wenn die Datei mit dem symbolischen Link vorhanden ist . -g: Gibt „True“ zurück, wenn die Datei vorhanden ist und das Flag „Hold Set Group ID“ gesetzt ist. -G: ICH t gibt „True“ zurück, wenn die Datei existiert und dieselbe Gruppen-ID enthält, die gerade verarbeitet wird. -k: Gibt „True“ zurück, wenn die Datei existiert und das Sticky-Bit-Flag gesetzt ist.
Nun gibt es noch einige weitere Parameter zum Vergleich zwischen den beiden Dateien.
- -ef: Gibt „True“ zurück, wenn beide Dateien vorhanden sind und auf dieselbe Datei hinweisen.
Beispiel :
FirstFile -ef SecondFile>
- -nt: Gibt True zurück, wenn FirstFile neuer als Secondfile ist.
Beispiel :
Java-Escape-Zeichen
FirstFile -nt FileOld>
- -ot: Gibt True zurück, wenn FirstFile älter als SecondFile ist.
Beispiel:
FirstFile -ot SecondFile>
Nehmen wir einige Beispiele basierend auf der Syntax:
- [Ausdruck]: Erstellen Sie zunächst eine Datei mit dem Namen FirstFile.sh und schreiben Sie das folgende Skript darauf
#!/bin/bash # using [ expression ] syntax and in place # of File.txt you can write your file name if [ -f 'File.txt' ]; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Speichern Sie nun die Datei und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ausgabe :

Ausgabe
Notiz: Da die Datei.txt im System vorhanden ist. Es wurde also „File is exist“ ausgegeben.
Alphabet mit Zahlen
- test [Ausdruck]: Ändern Sie nun das obige Skript in FirstFile.sh wie folgt
#!/bin/bash # using test expression syntax and in place # of File2.txt you can write your file name if test -f 'File2.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Speichern Sie die Datei nun erneut und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ausgabe :

Ausgabe
Notiz: Da File2.txt nicht im System vorhanden ist. Es wurde also „File is not exist“ ausgegeben.
- [[Ausdruck]]: Ändern Sie das obige Skript in FirstFile.sh erneut wie folgt
#!/bin/bash # using [[ expression ]] syntax and in place # of File3.txt you can write your file name if test -f 'File3.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Speichern Sie die Datei nun erneut und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Ausgabe :

Ausgabe
Notiz: Da die File3.txt im System vorhanden ist. Es wurde also „File is exist“ ausgegeben.
Sehen wir uns ein Beispiel basierend auf Parametern an:
- Verwenden des Parameters -d: Erstellen Sie eine Datei mit dem Namen FirstDir.sh und schreiben Sie das folgende Skript hinein
!/bin/bash if [[ -d 'GFG_dir' ]] ; # Here GFG_dir is directory and in place of GFG_dir you can write your Directory name then echo 'Directory is exist' # If GFG_dir exist then it will be printed else echo 'Directory is not exist' # If GFG_dir is not exist then it will be printed fi>
Speichern Sie nun die Datei und führen Sie sie mit dem folgenden Befehl aus
Python sortiert Tupel
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Ausgabe :

Ausgabe
Notiz: Da das GFG_dir im System vorhanden ist. Es wurde also „Directory is exist“ gedruckt.
Ebenso können Sie verwenden -F , -Es ist , -In , -R , -C ,usw. (je nach Verwendungszweck) anstelle von -D zur Überprüfung der Existenz verschiedener Dateitypen.
Sehen wir uns ein Beispiel an, das auf einem Vergleich zweier Dateien basiert:
- Benutzen -nt Parameter
Erstellen Sie eine Datei mit dem Namen „Vergleich_Datei.sh“ und schreiben Sie das folgende Skript
#!/bin/bash # New_file.txt and Old_File.txt are names of two files. if [[ 'New_File.txt' -nt 'Old_File.txt' ]] ; then # This will be printed if Condition is true echo 'New_File.txt is newer than Old_File.txt' else # This will be printed if Condition is False echo 'New_File.txt is not newer than Old_File.txt' fi>
Speichern Sie nun die Datei und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Ausgabe :

Ausgabe
Notiz: Da beide Dateien im System vorhanden sind und New_File.txt neuer als Old_File.txt ist
Sehen wir uns das Beispiel „Überprüfen, ob die Datei nicht existiert“ an:
Erstellen Sie eine Datei mit dem Namen Check_Exist.sh und schreiben Sie das folgende Skript hinein
#!/bin/bash # using ! before -f parameter to check if # file does not exist if [[ ! -f 'GFG.txt' ]] ; then # This will printed if condition is True echo 'File is not exist' else # This will be printed if condition is False echo 'File is exist' fi>
Speichern Sie nun die Datei und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Ausgabe :

Ausgabe
Notiz: GFG.txt ist nicht im System vorhanden. Daher wird die Meldung „Datei ist nicht vorhanden“ angezeigt
Sehen wir uns ein Beispiel ohne Verwendung der If-else-Bedingung an:
Erstellen Sie eine Datei mit dem Namen Geeks_File.sh und schreiben Sie das folgende Skript hinein
#!/bin/bash # If File exist then first statement will be # printed and if it is not exist then 2nd # statement will be printed. [ -f 'GFG_File.txt' ] && echo 'File is exist' || echo 'File is not exist'>
Speichern Sie nun die Datei und führen Sie sie mit dem folgenden Befehl aus
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Ausgabe :
Alphabet und Zahlen

Ausgabe
Notiz: Da die GFG_File.txt im System vorhanden ist. Es wurde also „File is exist“ ausgegeben.