V tem članku bomo napisali skript bash za preverjanje, ali datoteke obstajajo ali ne.
Sintaksa:
- test [izraz]
- [ izraz ]
- [[ izraz ]]
Tukaj v izrazu pišemo parameter in Ime datoteke . Poglejmo nekaj parametrov, ki jih je mogoče uporabiti v izrazu: –
- – f: Vrne True, če datoteka obstaja kot običajna (običajna) datoteka. -d: vrne True, če imenik obstaja. -e : vrne True, če obstaja katera koli vrsta datoteke. -c : vrne True, če znakovna datoteka obstaja. -r : vrne True, če obstaja berljiva datoteka.
- – noter : vrne True, če obstaja zapisljiva datoteka . -x : vrne True, če obstaja izvršljiva datoteka. -p : vrne True, če datoteka obstaja kot cev. -S : vrne True, če datoteka obstaja kot vtičnica. -s: vrne True, če datoteka obstaja in velikost datoteke ni enaka nič. -L : vrne True, če datoteka s simbolno povezavo obstaja . -g : vrne True, če datoteka obstaja in je nastavljena zastavica id-ja zadrži nastavljeno skupino. -G : jaz t vrne True, če datoteka obstaja in ima isti ID skupine, kot je v obdelavi. -k : vrne True, če datoteka obstaja in je nastavljena zastavica lepljivega bita.
Zdaj je na voljo še nekaj parametrov za primerjavo med obema datotekama.
- -ef: vrne True, če obe datoteki obstajata in označujeta isto datoteko.
Primer:
FirstFile -ef SecondFile>
- -nt: vrne True, če je FirstFile novejša od Secondfile.
Primer:
pawandeep rajan
FirstFile -nt FileOld>
- -ot: vrne True, če je FirstFile starejša od SecondFile.
primer:
FirstFile -ot SecondFile>
Vzemimo nekaj primerov na podlagi sintakse:
- [ izraz ]: Najprej ustvarite datoteko z imenom FirstFile.sh in vanjo napišite naslednji skript
#!/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>
Zdaj shranite in zaženite datoteko z naslednjim ukazom
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Izhod:

Izhod
Opomba: Ker je datoteka File.txt prisotna v sistemu. Torej je natisnjeno Datoteka obstaja.
- test [izraz]: Zdaj spremenite zgornji skript v FirstFile.sh, kot sledi
#!/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>
Zdaj znova shranite in zaženite datoteko z naslednjim ukazom
rimske številke 1-100
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Izhod:

Izhod
Opomba: Ker File2.txt ni prisoten v sistemu. Torej je natisnjeno Datoteka ne obstaja.
- [[ izraz ]]: Znova spremenite zgornji skript v FirstFile.sh, kot sledi
#!/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>
Zdaj znova shranite in zaženite datoteko z naslednjim ukazom
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Izhod:

Izhod
Opomba: Ker je datoteka File3.txt prisotna v sistemu. Torej je natisnjeno Datoteka obstaja.
Oglejmo si primer, ki temelji na parametrih:
- Uporaba parametra -d: ustvarite datoteko z imenom FirstDir.sh in vanj napišite naslednji skript
!/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>
Zdaj shranite in zaženite datoteko z naslednjim ukazom
ipconfig za ubuntu
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Izhod:

Izhod
Opomba: Ker je GFG_dir prisoten v sistemu. Torej, natisnjeno Imenik obstaja.
Podobno lahko uporabite -f , -Je , -Noter , -r , -c itd. (glede na njihovo uporabo) namesto -d za preverjanje obstoja različnih vrst datotek.
Oglejmo si primer, ki temelji na primerjavi dveh datotek:
- Uporaba -nt parameter
Ustvarite datoteko z imenom Comparison_File.sh in napišite naslednji 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>
Zdaj shranite in zaženite datoteko z naslednjim ukazom
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Izhod:

Izhod
Opomba: Ker sta obe datoteki prisotni v sistemu in je New_File.txt novejša od Old_File.txt
logotip java
Oglejmo si primer Preveri, če datoteka ne obstaja:
Ustvarite datoteko z imenom Check_Exist.sh in vanj napišite naslednji skript
#!/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>
Zdaj shranite in zaženite datoteko z naslednjim ukazom
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Izhod:

Izhod
Opomba: GFG.txt ni prisoten v sistemu. Torej bo natisnjeno Datoteka ne obstaja
Oglejmo si primer brez uporabe pogoja If-else:
Ustvarite datoteko z imenom Geeks_File.sh in vanjo napišite naslednji skript
#!/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'>
Zdaj shranite in zaženite datoteko z naslednjim ukazom
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Izhod:

Izhod
Opomba: Ker je datoteka GFG_File.txt prisotna v sistemu. Torej je natisnjeno Datoteka obstaja.