logo

Bash Scripting - Sådan kontrollerer du, om filen eksisterer

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 .