Med delom z datotekami v katerem koli operacijskem sistemu mora uporabnik te datoteke preizkusiti glede določenih vidikov, kot so lastništvo, pravice dostopa, vsebina, obstoj itd. Te vidike lahko ugotovimo med povezovanjem stavka "if" z različnimi operaterji preizkusa datotek v Bashu. "If -e" in "if -s" sta taka operaterja v Bashu, ki se uporabljata za preizkušanje obstoja datoteke. Razlika med obema je v tem, da prva samo preskusi obstoj datoteke, druga pa tudi preveri, ali je v njej kakšna vsebina ali ne. Danes bomo poskušali razumeti uporabo teh dveh operaterjev, skupaj z nekaj drugimi operaterji preizkusa datotek v Bashu.
Opomba: Za prikaz uporabe operaterjev za preizkus datotek v Bashu smo uporabili Linux Mint 20.
Primeri uporabe operatorjev za preizkus datotek v Bashu
Obstajajo različni načini, na katere se lahko uporabljajo operatorji za preizkus datotek "if -e" in "if -s". Za razlago njihove uporabe bomo z vami delili nekaj primerov.
Primer uporabe operaterja “if -e”
Za uporabo operatorja "if -e" v Bashu morate slediti tem korakom:
Najprej smo ustvarili prazno besedilno datoteko z imenom Test.txt v našem domačem imeniku. Nato smo ustvarili bash datoteko z imenom FileTestOperators.sh v istem imeniku. Po ustvarjanju te datoteke smo v našo datoteko vtipkali skript, prikazan na naslednji sliki. V tem bash skriptu je razglasil spremenljivko z imenom "datoteka" in ji dodelil besedilno datoteko z imenom Test.txt kot njegova vrednost. Nato imamo stavek "if -e", ki ustvari "resničen" izhod, če obstaja določena datoteka.
Za preizkus našega skripta ga bomo zagnali z uporabo spodnjega ukaza:
$ bash FileTestOperators.sh
V našem primeru, odkar obstaja besedilna datoteka, bo zato rezultat našega skripta resničen, kot je prikazano na naslednji sliki:
Primer uporabe operaterja "if -s"
Za uporabo operatorja »if -s« v Bashu morate izvesti spodnje korake:
V tem primeru je naš skript bash enak tistemu, ki smo ga uporabili zgoraj. Pravkar smo spremenili stavek "če-e" v "če-e". Uporabili smo tudi isto prazno besedilno datoteko Test.txt.
Zdaj, ko zaženemo ta skript, bo izhod napačen, ker operator "if -s" vrne true, če datoteka obstaja in tudi če ni prazna. Ker je v našem primeru, čeprav je datoteka obstajala, še vedno prazna, zato se je naš izhod izkazal za napačnega, kot je prikazano na naslednji sliki:
Da bo ta zastavica resnična, bomo v besedilno datoteko zapisali nekaj lažnega besedila, kot je prikazano spodaj:
Nato znova zaženemo bash skript in tokrat bo rezultat resničen, kot je prikazano na naslednji sliki, ker je v besedilni datoteki zdaj nekaj besedila.
Primeri uporabe drugih operaterjev za preizkus datotek
Razen operaterjev "if -e" in "if -s" obstajajo tudi drugi operaterji preizkusa datotek. Spodaj bomo z vami delili nekatere najpomembnejše operaterje preskusov datotek, razen tistih, o katerih smo govorili zgoraj.
Primer uporabe operatorja "if -d"
Za uporabo operatorja "if -d" v Bashu morate izvesti spodnje korake:
V tem primeru je naš skript bash enak tistemu, ki smo ga uporabili zgoraj. Pravkar smo spremenili stavek "če -s" v "če-d". Uporabili smo tudi isto besedilno datoteko Test.txt.
Operator “if -d” vrne true, če je vaša datoteka imenik, sicer bo napačna. Ker naša besedilna datoteka ni bila imenik, bo izpis napačen, kot je prikazano na naslednji sliki:
Primer uporabe operatorja “if -h”
Za uporabo operatorja "if -h" v Bashu morate slediti tem korakom:
V tem primeru je naš skript bash enak tistemu, ki smo ga uporabili zgoraj. Pravkar smo spremenili stavek "if -d" v "if -h". Vendar smo tokrat za testiranje uporabili drugo datoteko, ki je bila v resnici simbolična povezava z imenom NewBash.sh.
Operator “if -h” vrne true, če je datoteka simbolična povezava, sicer bo napačna. Ker je bila naša testna datoteka simbolična povezava, bo rezultat resničen, kot je prikazano na naslednji sliki:
Primer uporabe operaterja “if -r”
Za uporabo operatorja "if -r" v Bashu morate slediti tem korakom:
V tem primeru je naš skript bash enak tistemu, ki smo ga uporabili zgoraj. Pravkar smo spremenili stavek "če-h" v "če-r". Uporabili smo tudi isto besedilno datoteko Test.txt.
Izhod operatorja "if -r" bo resničen, če bo trenutni uporabnik lahko prebral datoteko, sicer bo napačna. Ker smo besedilno datoteko lahko brali sami, bo izhod resničen, kot je prikazano na naslednji sliki:
Na enak način lahko z operatorjema »if -w« in »if -x« preverite, ali je trenutni lastnik v datoteko zapisoval in jo izvršil.
Primer uporabe operaterja "if -O"
Za uporabo operatorja "if -O" v Bashu morate izvesti spodnje korake:
V tem primeru je naš skript bash enak tistemu, ki smo ga uporabili zgoraj. Pravkar smo spremenili stavek "if -r" v "if -O". Uporabili smo tudi isto besedilno datoteko Test.txt.
Izhod operatorja "if -O" bo resničen, če je trenutni uporabnik lastnik datoteke, sicer bo napačen. Ker je bila naša besedilna datoteka v naši lasti, bo rezultat resničen, kot je prikazano na naslednji sliki:
Zaključek
Ta članek je bralca seznanil z uporabo različnih operaterjev za preizkus datotek v Bashu z uporabo operacijskega sistema Linux. Z uporabo teh operaterjev za preizkušanje datotek je uporabniku zelo priročno delo z datotekami brez kakršnih koli potencialnih težav. Obstajajo tudi nekateri drugi operatorji za preskušanje datotek, ki jih je mogoče uporabiti za različne namene.