I denne artikkelen vil vi skrive et bash-skript for å sjekke om filer eksisterer eller ikke.
Syntaks:
- test [uttrykk]
- [ uttrykk ]
- [[ uttrykk ]]
Her, i uttrykk, skriver vi parameter og filnavn . La oss se noen parametere som kan brukes i uttrykket: -
- – f: Den returnerer True hvis filen eksisterer som en vanlig (vanlig) fil. -d : den returnerer True hvis katalogen eksisterer. -e : Den returnerer True hvis det finnes en filtype. -c : Den returnerer True hvis tegnfilen eksisterer. -r : Den returnerer True hvis det finnes en lesbar fil.
- – I : Den returnerer True hvis det finnes en skrivbar fil . -x : Den returnerer True hvis det finnes en kjørbar fil. -p : Den returnerer True hvis filen eksisterer som en pipe. -S : Den returnerer True hvis filen eksisterer som en socket. -s : den returnerer True hvis en fil eksisterer og størrelsen på filen ikke er null. -L : Den returnerer True hvis filen med symbolsk lenke eksisterer . -g : Den returnerer True hvis filen eksisterer og hold set group id-flagget er satt. -G : Jeg t returnerer True hvis filen eksisterer og har samme gruppe-ID som er under behandling. -k : Den returnerer True hvis filen eksisterer og sticky bit-flagget er satt.
Nå er det noen flere parametere for sammenligning mellom de to filene.
- -ef: Den returnerer True hvis begge filene eksisterer og indikerer den samme filen.
Eksempel:
FirstFile -ef SecondFile>
- -nt: Den returnerer True hvis FirstFile er nyere enn Secondfile.
Eksempel:
string.substring java
FirstFile -nt FileOld>
- -ot: Den returnerer True hvis FirstFile er eldre enn SecondFile.
Eksempel:
FirstFile -ot SecondFile>
La oss ta noen eksempler basert på syntaks:
- [ uttrykk ]: Lag først en fil som heter FirstFile.sh og skriv følgende skript på den
#!/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>
Lagre og kjør filen ved å bruke følgende kommando
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Utgang:

Produksjon
Merk: Siden File.txt er tilstede i systemet. Så den utskrevne filen eksisterer .
- test [uttrykk]: Nå, endre skriptet ovenfor i FirstFile.sh som følger
#!/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>
Lagre og kjør filen igjen ved å bruke følgende kommando
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Utgang:

Produksjon
Merk: Siden File2.txt ikke finnes i systemet. Så den trykte filen eksisterer ikke.
- [[ uttrykk ]]: Igjen endre skriptet ovenfor i FirstFile.sh som følger
#!/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>
Lagre og kjør filen igjen med følgende kommando
java hashmap
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Utgang:

Produksjon
Merk: Siden File3.txt er tilstede i systemet. Så den utskrevne filen finnes .
La oss se et eksempel basert på parametere:
- Bruke -d parameter: Lag en fil som heter FirstDir.sh og skriv følgende manus i den
!/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>
Nå Lagre og kjør filen ved å bruke følgende kommando
hvordan endre streng til int
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Utgang:

Produksjon
Merk: Siden GFG_dir er tilstede i systemet. Så den trykte katalogen eksisterer.
På samme måte kan du bruke -f , -Det er , -I , -r , -c ,etc. (i henhold til deres bruk) i stedet for -d for å sjekke eksistensen av forskjellige typer filer.
La oss se et eksempel basert på en sammenligning av to filer:
- Ved hjelp av -nt parameter
Opprett et filnavn Comparison_File.sh og skriv følgende 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>
Nå Lagre og kjør filen ved å bruke følgende kommando
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Utgang:

Produksjon
Merk: Siden begge filene finnes i systemet og New_File.txt er nyere enn Old_File.txt
La oss se eksempelet Sjekk om fil ikke eksisterer:
Opprett en fil med navnet Check_Exist.sh og skriv følgende manus i den
#!/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>
Nå Lagre og kjør filen ved å bruke følgende kommando
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Utgang:

Produksjon
som fant opp skolen
Merk: GFG.txt finnes ikke i systemet. Så den vil skrive ut Filen eksisterer ikke
La oss se et eksempel uten å bruke If-else-betingelsen:
Lag en fil som heter Geeks_File.sh og skriv følgende skript i den
#!/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'>
Nå Lagre og kjør filen ved å bruke følgende kommando
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Utgang:

Produksjon
Merk: Siden GFG_File.txt er tilstede i systemet. Så den utskrevne filen finnes .