Bash skriptēšana - kā pārbaudīt, vai fails pastāv

Bash skriptēšana - kā pārbaudīt, vai fails pastāv

Šajā rakstā mēs uzrakstīsim bash skriptu, lai pārbaudītu, vai faili pastāv.

Sintakse :

  • pārbaude [izteiksme]
  • [izteiciens]
  • [[ izteiksme ]]

Šeit, izteiksmē, mēs rakstām parametrs un faila nosaukums . Apskatīsim dažus parametrus, kurus var izmantot izteiksmē: -

  • f: Tas atgriež True, ja fails pastāv kā kopīgs (parasts) fails.
  • -d: tas atgriež True, ja direktorijs pastāv. -e: tas atgriež True, ja pastāv kāda veida fails. -c: tas atgriež True, ja pastāv rakstzīmju fails. -r: tas atgriež True, ja pastāv lasāms fails.
  • In : Tas atgriež True, ja pastāv ierakstāms fails .
  • -x: tas atgriež True, ja eksistē izpildāms fails. -p: tas atgriež True, ja fails pastāv kā caurule. -S: Tas atgriež True, ja fails pastāv kā ligzda. -s: tas atgriež True, ja fails pastāv un faila lielums nav nulle. -L: Tas atgriež True, ja pastāv simboliskās saites fails . -g : Tas atgriež True, ja fails pastāv un ir iestatīts aizturēšanas kopas grupas ID karodziņš. -G: es t atgriež True, ja fails eksistē un tajā ir tas pats grupas ID, kas tiek apstrādāts. -k : Tas atgriež True, ja fails pastāv un ir iestatīts lipīgo bitu karodziņš.

Tagad ir vēl daži parametri abu failu salīdzināšanai.

    -ef: tas atgriež True, ja abi faili pastāv un norāda vienu un to pašu failu.

Piemērs :

FirstFile -ef SecondFile 
    -nt: tas atgriež True, ja FirstFile ir jaunāks par Secondfile.

Piemērs :

FirstFile -nt FileOld 
    -ot: tas atgriež vērtību True, ja FirstFile ir vecāks par SecondFile.

Piemērs:

FirstFile -ot SecondFile 

Ņemsim dažus piemērus, pamatojoties uz sintaksi:

    [ izteiksme ]: vispirms izveidojiet failu ar nosaukumu FirstFile.sh un ierakstiet tajā šādu skriptu
#!/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 

Tagad saglabājiet un palaidiet failu, izmantojot šo komandu

$ chmod +x ./FirstFile.sh $ ./FirstFile.sh 

Izvade:

Izvade

Piezīme: Tā kā fails File.txt atrodas sistēmā. Tātad, tas izdrukāts Fails pastāv.

    tests [izteiksme]: Tagad modificējiet iepriekš minēto skriptu vietnē FirstFile.sh šādi
#!/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 

Tagad vēlreiz saglabājiet un palaidiet failu, izmantojot šo komandu

$ chmod +x ./FirstFile.sh $ ./FirstFile.sh 

Izvade:

Izvade

Piezīme: Tā kā fails File2.txt sistēmā nav pieejams. Tātad tas izdrukāts Fails neeksistē.

    [[ izteiksme ]]: vēlreiz modificējiet iepriekš minēto skriptu failā FirstFile.sh šādi
#!/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 

Tagad vēlreiz saglabājiet un palaidiet failu, izmantojot šo komandu

 $ chmod +x ./FirstFile.sh $ ./FirstFile.sh 

Izvade:

Izvade

Piezīme: Tā kā fails File3.txt atrodas sistēmā. Tātad, tas izdrukāts Fails pastāv.

Apskatīsim piemēru, pamatojoties uz parametriem:

    Izmantojot parametru -d: izveidojiet failu ar nosaukumu FirstDir.sh un ierakstiet tajā šādu skriptu
!/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 

Tagad saglabājiet un palaidiet failu, izmantojot šo komandu

$ chmod +x ./FirstDir.sh $ ./FirstDir.sh 

Izvade:

Izvade

Piezīme: Tā kā sistēmā ir GFG_dir. Tātad drukātais direktorijs pastāv.

Līdzīgi varat izmantot -f , -Tas ir , -Iekšā , -r , -c utt. (atbilstoši to lietojumam ) vietā -d lai pārbaudītu dažādu veidu failu esamību.

Apskatīsim piemēru, kura pamatā ir divu failu salīdzinājums:

  • Izmantojot -nt parametrs

Izveidojiet faila nosaukumu Comparison_File.sh un uzrakstiet šādu skriptu

#!/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 

Tagad saglabājiet un palaidiet failu, izmantojot šo komandu

 $  chmod +x ./Comparison_File.sh $ ./Comparison_File.sh 

Izvade:

Izvade

Piezīme: Tā kā sistēmā ir abi faili un fails New_File.txt ir jaunāks par Old_File.txt

Apskatīsim piemēru Pārbaudiet, vai fails neeksistē:

Izveidojiet failu ar nosaukumu Check_Exist.sh un ierakstiet tajā šādu skriptu

#!/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 

Tagad saglabājiet un palaidiet failu, izmantojot šo komandu

 $ chmod +x ./Check_Exist.sh $  ./Check_Exist.sh 

Izvade:

Izvade

Piezīme: Faila GFG.txt sistēmā nav. Tātad, tas tiks izdrukāts Fails neeksistē

Apskatīsim piemēru, neizmantojot nosacījumu If-else :

Izveidojiet failu ar nosaukumu Geeks_File.sh un ierakstiet tajā šādu skriptu

#!/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' 

Tagad saglabājiet un palaidiet failu, izmantojot šo komandu

 $ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh 

Izvade:

Izvade

Piezīme: Tā kā fails GFG_File.txt atrodas sistēmā. Tātad, tas izdrukāts Fails pastāv.