Kako provjeriti postoji li datoteka u bashu

How Check If File Exists Bash



Postoji nekoliko načina za provjeru dostupnosti datoteke u Linuxu. Naredba testa u bash skriptiranju jedan je od ključnih pristupa provjeri postojanja datoteke.
Fokus ovog vodiča je raspraviti o postojanju datoteke u vašem sustavu putem bash skriptiranja:

Kako provjeriti postojanje datoteke pomoću bash skriptiranja:

1) Unosom naziva datoteke u terminal:







Prvo, moramo stvoriti datoteku bash skripte, upotrijebite dolje navedenu naredbu:



$dodirtestfile.sh

Naziv datoteke koju sam stvorio je testfile.sh, ekstenzija .sh označava datoteku skripte ljuske:







Otvorite testfile.sh u bilo kojem uređivaču teksta. Zatim napišite skriptu, spremite je pritiskom na spremi.

Jedan od načina je pronaći datoteku tako što ćete zatražiti naziv datoteke od korisnika u terminalu.



Koristiti -f provjeriti postojanje datoteke.

Napišite ispod skriptu:

#!/bin/bash
izbaciti 'Unesite naziv datoteke'
čitatinova datoteka1
ako [ -f '$ newfile1' ]
zatim
izbaciti 'Datoteka je pronađena'
drugo
izbaciti 'Datoteka nije pronađena'
biti

Vratite se na terminal i pokrenite datoteku za ispis rezultata:

./naziv datoteke.sh

Poruka o odbijenom dopuštenju bit će prikazana na terminalu.

Učinite ga izvršnim izvršavanjem dolje navedene naredbe:

$chmod+ x testfile.sh

Unesite naziv datoteke i ispisat će se rezultat:

2) Upisom naziva datoteke tijekom pisanja skripte:
Drugi način pronalaženja datoteke davanjem naziva datoteke tijekom pisanja skripte. Imamo tri načina za provjeru dostupnosti datoteke. Prvi koristi testnu naredbu, drugi koristi if s izrazom u uglatim zagradama, a treći također s if ali dvostrukim uglatim zagradama kako je dolje naznačeno:

  1. test EXPRESSION.
  2. ako [EXPRESSION]
  3. ako [[EXPRESSION]]

Shvatimo to primjerima:

1) test [izraz]
Kopirajte zadanu skriptu i zalijepite je u uređivač, spremite je:

#!/bin/bash
naziv datoteke= datoteka1
ako test -f '$ naziv datoteke';
zatim
izbaciti '$ datotekupronašao.'
drugo
izbaciti '$ datotekunije pronađeno '
biti

Izlaz:

Kako u mom direktoriju nema takve datoteke, stoga kod prikazuje poruku Datoteka nije pronađena.

2) ako [izraz]

Kopirajte sljedeću skriptu da provjerite postoji li datoteka ili ne:

#!/bin/bash
naziv datoteke= myfile.txt
ako [ -f '$ naziv datoteke' ];
zatim
izbaciti '$ naziv datotekepronašao.'
drugo
izbaciti 'naziv datoteke nije pronađen'
biti

Izlaz:

3) ako je [[izraz]]

Kopirajte dolje napisanu skriptu i zalijepite je na terminal:

#!/bin/bash
naziv datoteke= testni datoteku
ako [[ -f '$ naziv datoteke' ]];
zatim
izbaciti '$ naziv datotekepronašao.'
drugo
izbaciti '$ naziv datotekenije pronađeno '
biti

Izlaz:

Da biste provjerili direktorij:

3) Unosom naziva direktorija tijekom pisanja skripte

Koristiti -d zastavica za provjeru postojanja direktorija.

U dolje spomenutoj skripti, dir11 je varijabla u koju spremate datoteku onu koju pronađete; u ovom primjeru želim provjeriti postoji li ime direktorija testDir ili ne.

#!/bin/bash
dir11= testDir
ako [ -d '$ dir11' ]
zatim
izbaciti 'Imenik je pronađen'
drugo
izbaciti 'Imenik nije pronađen'
biti

Izlaz:

2) Unosom naziva datoteke u terminal:
Kada pokrenete naredbu u terminalu da provjerite postoji li direktorij ili ne, morate unijeti naziv direktorija koji tražite:

#!/bin/bash
izbaciti 'upišite ime direktorija.'
čitatiDir1
ako [ -d 'Dir1' ]
zatim
izbaciti 'direktorij je pronađen'
drugo
izbaciti 'direktorij nije pronađen'
biti

Izlaz:

Provjera datoteke bez korištenja naredbe if:

Testna naredba može se izvršiti bez naredbe if. Prikazat će se izlaz samo ako datoteka postoji; inače, ne bi bilo izlaza:

Napišite skriptu:

  1. test -fmyfile.txt&& izbaciti 'datoteka je pronađena'

  2. [ -fmyfile.txt] && izbaciti '$ datotekuje nađen.'

  3. [[ -fmyfile.txt]] && izbaciti '$ datotekuje nađen.'

Izlaz:

Provjera direktorija bez upotrebe naredbe if:

Upotrijebite dolje navedene izraze da provjerite postoji li direktorij ili ne:

  1. [[ -dtestDir]] && izbaciti 'direktorij postoji'

  2. 2) [ -dtestDir] && izbaciti 'direktorij postoji'

Izlaz:

Provjeravanje više datoteka/direktorija:

1) Provjeravanje više datoteka s if naredbama:
Upotrijebite zastavicu -a za provjeru postojanja različitih datoteka umjesto upotrebe ugniježđenih naredbi if/else:

#!/bin/bash
ako [ -fnew_file.txt-do -fnewfile.txt];zatim
izbaciti 'Obje datoteke postoje.'
biti

Drugi način je:

#!/bin/bash
ako [[ -fnew_file.txt&& -fnewfile.txt]];zatim
izbaciti 'Obje datoteke postoje.'
biti

Izlaz:

2) Provjeravanje više datoteka bez upotrebe naredbe if:
Upotrijebite sljedeću izjavu za provjeru više datoteka istodobno 1 bez korištenja ako:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && izbacitiObje datoteke izlaze.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && izbacitiObje datoteke izlaze.

Izlaz:

Zaključak:

Ovaj članak je pokazao kako koristiti bash skripte za provjeru datoteke ili direktorija. Koristili smo različite mogućnosti za provjeru dostupnosti datoteke. Prvo, koristimo testnu naredbu s različitim zastavicama. Zatim smo naučili korištenje if, ugniježđenog if-else, i bez if naredbi za provjeru datoteke ili direktorija. Također smo pregledali kako provjeriti više datoteka ili direktorija.