Kako preveriti, ali datoteka obstaja v bashu

How Check If File Exists Bash



Razpoložljivost datoteke v Linuxu lahko preverite na več načinov. Ukaz test v skriptiranju bash je eden ključnih pristopov k preverjanju obstoja datoteke.
Poudarek tega priročnika je razpravljati o obstoju datoteke v vašem sistemu s pomočjo skripta bash:

Kako preveriti obstoj datotek s skripti bash:

1) Z vnosom imena datoteke v terminal:







Najprej moramo ustvariti datoteko skripta bash in uporabiti spodnji ukaz:



$dotiktestfile.sh

Ime datoteke, ki sem jo ustvaril, je testfile.sh, razširitev .sh označuje datoteko skripta lupine:







Odprite testfile.sh v katerem koli urejevalniku besedil. Nato napišite skript in ga shranite s pritiskom na shrani.

Eden od načinov je, da datoteko poiščete tako, da od uporabnika v terminalu zahtevate ime datoteke.



Uporaba -f da preverite obstoj datoteke.

Napišite spodnji skript:

#!/bin/bash
vrgel ven 'Vnesite ime datoteke'
prebratinewfile1
če [ -f '$ newfile1' ]
potem
vrgel ven 'Datoteka je najdena'
drugače
vrgel ven 'Datoteke ni mogoče najti'
biti

Vrnite se na terminal in zaženite datoteko za tiskanje izpisa:

./filename.sh

V terminalu se prikaže sporočilo o zavrnitvi dovoljenja.

Izvedite ga tako, da izvedete spodnji ukaz:

$chmod+ x testfile.sh

Vnesite ime datoteke in natisnila bo izpis:

2) Z vnosom imena datoteke med pisanjem skripta:
Drug način za iskanje datoteke je, da med pisanjem skripta navedete ime datoteke. Razpoložljivost datoteke imamo na tri načine. Prvi uporablja testni ukaz, drugi uporablja if z izrazom v oglatih oklepajih, tretji pa tudi if, vendar dvojne oglate oklepaje, kot je prikazano spodaj:

  1. test EXPRESSION.
  2. če [EXPRESSION]
  3. če [[EXPRESSION]]

Razumimo to s primeri:

1) test [izraz]
Kopirajte dani skript in ga prilepite v urejevalnik, shranite:

#!/bin/bash
Ime datoteke= datoteka1
če preskus -f '$ ime datoteke';
potem
vrgel ven '$ datotekoje našel. '
drugače
vrgel ven '$ datotekoni bilo najdeno '
biti

Izhod:

Ker v mojem imeniku ni take datoteke, zato koda prikaže sporočilo Datoteka ni najdena.

2) če [izraz]

Kopirajte naslednji skript, da preverite, ali datoteka obstaja ali ne:

#!/bin/bash
Ime datoteke= myfile.txt
če [ -f '$ ime datoteke' ];
potem
vrgel ven '$ ime datotekeje našel. '
drugače
vrgel ven 'ime datoteke ni bilo najdeno'
biti

Izhod:

3) če [[izraz]]

Kopirajte spodaj napisani skript in ga prilepite na terminal:

#!/bin/bash
Ime datoteke= preskusna datoteka
če [[ -f '$ ime datoteke' ]];
potem
vrgel ven '$ ime datotekeje našel. '
drugače
vrgel ven '$ ime datotekeni bilo najdeno '
biti

Izhod:

Če želite preveriti imenik:

3) Z vnosom imena imenika med pisanjem skripta

Uporabi -d zastavo za preverjanje obstoja imenika.

V spodaj omenjenem skriptu je dir11 spremenljivka, v katero shranite datoteko, ki jo najdete; v tem primeru želim preveriti, ali ime imenika testDir obstaja ali ne.

#!/bin/bash
dir11= testDir
če [ -d '$ dir11' ]
potem
vrgel ven 'Imenik je bil najden'
drugače
vrgel ven 'Imenika ni bilo mogoče najti'
biti

Izhod:

2) Z vnosom imena datoteke v terminal:
Ko zaženete ukaz v terminalu, da preverite, ali imenik obstaja ali ne, morate vnesti ime imenika, ki ga iščete:

#!/bin/bash
vrgel ven 'vnesite ime imenika.'
prebratiDir1
če [ -d 'Dir1' ]
potem
vrgel ven 'imenik je bil najden'
drugače
vrgel ven 'imenik ni bil najden'
biti

Izhod:

Preverjanje datoteke brez uporabe stavka if:

Testni ukaz je mogoče izvesti brez stavka if. Prikazal bo izhod le, če datoteka obstaja; drugače ne bi bilo izhoda:

Napišite skript:

  1. preskus -fmyfile.txt&& vrgel ven 'datoteka je bila najdena'

  2. [ -fmyfile.txt] && vrgel ven '$ datotekoje bil najden. '

  3. [[ -fmyfile.txt]] && vrgel ven '$ datotekoje bil najden. '

Izhod:

Preverjanje imenika brez uporabe stavka if:

S spodnjimi stavki preverite, ali imenik obstaja ali ne:

  1. [[ -dtestDir]] && vrgel ven 'imenik obstaja'

  2. 2) [ -dtestDir] && vrgel ven 'imenik obstaja'

Izhod:

Preverjanje več datotek/imenikov:

1) Preverjanje več datotek z izjavami if:
Uporabite zastavico -a, da preverite obstoj različnih datotek, namesto da uporabite ugnezdene stavke if/else:

#!/bin/bash
če [ -fnew_file.txt-za -fnewfile.txt];potem
vrgel ven 'Obe datoteki obstajata.'
biti

Drug način je:

#!/bin/bash
če [[ -fnew_file.txt&& -fnewfile.txt]];potem
vrgel ven 'Obe datoteki obstajata.'
biti

Izhod:

2) Preverjanje več datotek brez uporabe stavka if:
Uporabite naslednji stavek za istočasno preverjanje več datotek 1 brez uporabe, če:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && vrgel venObe datoteki se zapreta.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && vrgel venObe datoteki se zapreta.

Izhod:

Zaključek:

Ta članek je pokazal, kako uporabiti bash skript za preverjanje datoteke ali imenika. Za preverjanje razpoložljivosti datoteke smo uporabili različne možnosti. Najprej uporabimo ukaz test z različnimi zastavicami. Nato smo se naučili uporabe if, ugnezdene if-else, in brez stavkov if za preverjanje datoteke ali imenika. Preučili smo tudi, kako preveriti več datotek ali imenikov.