I denne artikel vil vi skrive et bash-script for at kontrollere, om der findes filer eller ej.
Syntaks:
- test [udtryk]
- [udtryk]
- [[ udtryk ]]
Her skriver vi i udtryk parameter og filnavn . Lad os se nogle parametre, der kan bruges i udtrykket: –
- – f: Det returnerer True, hvis filen eksisterer som en almindelig (almindelig) fil. -d : den returnerer True, hvis mappen findes. -e : Det returnerer True, hvis der findes en filtype. -c : Det returnerer True, hvis tegnfilen eksisterer. -r : Det returnerer True, hvis der findes en læsbar fil.
- – I : Det returnerer True, hvis der findes en skrivbar fil . -x : Det returnerer True, hvis der findes en eksekverbar fil. -p : Det returnerer True, hvis filen eksisterer som en pipe. -S : Det returnerer True, hvis filen eksisterer som en socket. -s : den returnerer True, hvis der findes en fil, og filens størrelse ikke er nul. -L : Det returnerer True, hvis filen med symbolsk link eksisterer . -g: Det returnerer True, hvis filen eksisterer, og hold sæt gruppe-id-flaget er sat. -G: jeg t returnerer True, hvis filen eksisterer og har samme gruppe-id, som er i gang. -k : Det returnerer True, hvis filen eksisterer, og sticky bit-flaget er sat.
Nu er der nogle flere parametre til sammenligning mellem de to filer.
- -ef: Det returnerer True, hvis begge filer findes og angiver den samme fil.
Eksempel:
FirstFile -ef SecondFile>
- -nt: Det returnerer True, hvis FirstFile er nyere end Secondfile.
Eksempel:
string.substring java
FirstFile -nt FileOld>
- -ot: Det returnerer True, hvis FirstFile er ældre end SecondFile.
Eksempel:
FirstFile -ot SecondFile>
Lad os tage nogle eksempler baseret på syntaks:
- [ udtryk ]: Opret først en fil med navnet FirstFile.sh og skriv følgende script 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>
Gem og kør nu filen ved hjælp af følgende kommando
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Output:

Produktion
Bemærk: Da File.txt er til stede i systemet. Så den udskrevne fil findes .
- test [udtryk]: Rediger nu ovenstående script 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>
Gem og kør nu filen igen ved hjælp af følgende kommando
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Output:

Produktion
Bemærk: Da File2.txt ikke er til stede i systemet. Så den udskrevne Fil findes ikke.
- [[ udtryk ]]: Rediger igen ovenstående script 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>
Gem og kør nu filen igen ved hjælp af følgende kommando
java hashmap
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Output:

Produktion
Bemærk: Da File3.txt er til stede i systemet. Så den udskrevne fil findes .
Lad os se et eksempel baseret på parametre:
- Brug -d parameter: Opret en fil med navnet FirstDir.sh og skriv følgende script 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>
Gem og kør nu filen ved hjælp af følgende kommando
hvordan man ændrer streng til int
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Output:

Produktion
Bemærk: Da GFG_dir er til stede i systemet. Så det udskrevne bibliotek eksisterer.
På samme måde kan du bruge -f , -Det er , -I , -r , -c ,etc. (i henhold til deres anvendelser) i stedet for -d for at kontrollere eksistensen af forskellige typer filer.
Lad os se et eksempel baseret på en sammenligning af to filer:
- Ved brug af -nt parameter
Opret et filnavn Comparison_File.sh og skriv følgende script
#!/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>
Gem og kør nu filen ved hjælp af følgende kommando
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Output:

Produktion
Bemærk: Da begge filer er til stede i systemet, og New_File.txt er nyere end Old_File.txt
Lad os se eksemplet Tjek om filen ikke eksisterer:
Opret en fil med navnet Check_Exist.sh og skriv følgende script 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>
Gem og kør nu filen ved hjælp af følgende kommando
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Output:

Produktion
der opfandt skolen
Bemærk: GFG.txt er ikke til stede i systemet. Så den vil udskrive Filen eksisterer ikke
Lad os se et eksempel uden at bruge betingelsen If-else:
Opret en fil ved navn Geeks_File.sh og skriv følgende script 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'>
Gem og kør nu filen ved hjælp af følgende kommando
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Output:

Produktion
Bemærk: Da GFG_File.txt er til stede i systemet. Så den udskrevne fil findes .