Cum să verificați dacă există un fișier în bash

How Check If File Exists Bash



Există mai multe moduri de a verifica disponibilitatea unui fișier în Linux. Comanda de testare în scriptarea bash este una dintre abordările cheie pentru verificarea existenței unui fișier.
Obiectivul acestui ghid este de a discuta existența unui fișier în sistemul dvs. prin scripting bash:

Cum să verificați existența fișierelor utilizând scripting bash:

1) Introducând numele fișierului în terminal:







În primul rând, trebuie să creăm un fișier script bash, utilizați comanda menționată mai jos:



$atingeretestfile.sh

Numele fișierului pe care l-am creat este testfile.sh, extensia .sh indică fișierul scriptului shell:







Deschideți testfile.sh în orice editor de text. Apoi scrieți scriptul, salvați-l apăsând save.

O modalitate este de a găsi un fișier cerând un nume de fișier de la utilizator în terminal.



Utilizare -f pentru a verifica existența fișierului.

Scrieți scriptul de mai jos:

#! / bin / bash
aruncat „Introduceți numele fișierului”
cititnewfile1
dacă [ -f '$ newfile1' ]
atunci
aruncat „Fișierul este găsit”
altceva
aruncat „Fișierul nu a fost găsit”
fi

Reveniți la terminal și rulați fișierul pentru a imprima ieșirea:

./nume de fișier.sh

Mesajul de refuzare a permisiunii va fi afișat în terminal.

Faceți executabil executând comanda menționată mai jos:

$chmod+ x testfile.sh

Introduceți numele fișierului și va imprima rezultatul:

2) Introducând numele fișierului în timp ce scrieți scriptul:
O altă modalitate de a găsi un fișier dând numele fișierului în timp ce scrieți scriptul. Avem trei moduri de a verifica disponibilitatea fișierului. Primul folosește comanda test, al doilea folosește if cu o expresie între paranteze pătrate, iar al treilea este, de asemenea, cu paranteze pătrate, dar duble, după cum se indică mai jos:

  1. test EXPRIMARE.
  2. dacă [EXPRIMARE]
  3. dacă [[EXPRESSION]]

Să o înțelegem cu exemple:

1) test [Expresie]
Copiați scriptul dat și lipiți-l în editor, salvați-l:

#! / bin / bash
nume de fișier= fișier1
dacă Test -f '$ nume de fișier';
atunci
aruncat '$ fișiera gasit.'
altceva
aruncat '$ fișiernu a fost găsit '
fi

Ieșire:

Deoarece nu există un astfel de fișier în directorul meu, prin urmare, codul afișează mesajul Fișier nu este găsit.

2) dacă [Expresie]

Copiați următorul script pentru a verifica dacă fișierul există sau nu:

#! / bin / bash
nume de fișier= fișierul meu.txt
dacă [ -f '$ nume de fișier' ];
atunci
aruncat '$ nume de fișiera gasit.'
altceva
aruncat 'numele fișierului nu a fost găsit'
fi

Ieșire:

3) dacă [[Expresie]]

Copiați scriptul scris mai jos și lipiți-l pe terminal:

#! / bin / bash
nume de fișier= testfile
dacă [[ -f '$ nume de fișier' ]];
atunci
aruncat '$ nume de fișiera gasit.'
altceva
aruncat '$ nume de fișiernu a fost găsit '
fi

Ieșire:

Pentru a verifica directorul:

3) Introducând numele directorului în timp ce scrieți un script

Folosește -d flag pentru a verifica existența unui director.

În scriptul menționat mai jos, dir11 este variabila în care stocați fișierul pe care îl găsiți; în acest exemplu, vreau să verific numele directorului testDir există sau nu.

#! / bin / bash
dir11= testDir
dacă [ -d '$ dir11' ]
atunci
aruncat „Directorul a fost găsit”
altceva
aruncat „Directorul nu a fost găsit”
fi

Ieșire:

2) Introducând numele fișierului în terminal:
Când executați comanda în terminal pentru a verifica dacă directorul există sau nu, vi se cere să introduceți numele directorului pe care îl căutați:

#! / bin / bash
aruncat „introduceți numele directorului.”
cititDir1
dacă [ -d „Dir1” ]
atunci
aruncat „directorul a fost găsit”
altceva
aruncat 'directorul nu a fost găsit'
fi

Ieșire:

Verificarea fișierului fără utilizarea instrucțiunii if:

Comanda test poate fi executată fără instrucțiunea if. Va afișa ieșirea numai dacă fișierul există; altfel, nu ar exista nicio ieșire:

Scrieți scriptul:

  1. Test -ffișierul meu.txt&& aruncat „fișierul a fost găsit”

  2. [ -ffișierul meu.txt] && aruncat '$ fișiera fost gasit.'

  3. [[ -ffișierul meu.txt]] && aruncat '$ fișiera fost gasit.'

Ieșire:

Verificarea directorului fără utilizarea instrucțiunii if:

Utilizați declarațiile menționate mai jos pentru a verifica dacă un director există sau nu:

  1. [[ -dtestDir]] && aruncat „directorul există”

  2. 2) [ -dtestDir] && aruncat „directorul există”

Ieșire:

Verificarea mai multor fișiere / directoare:

1) Verificarea mai multor fișiere cu declarații if:
Utilizați steagul -a pentru a verifica existența diferitelor fișiere în loc să utilizați instrucțiuni imbricate if / else:

#! / bin / bash
dacă [ -fnew_file.txt-la -fnewfile.txt];atunci
aruncat „Ambele fișiere există.”
fi

O altă modalitate este:

#! / bin / bash
dacă [[ -fnew_file.txt&& -fnewfile.txt]];atunci
aruncat „Ambele fișiere există.”
fi

Ieșire:

2) Verificarea mai multor fișiere fără utilizarea instrucțiunii if:
Utilizați următoarea declarație pentru a verifica simultan mai multe fișiere 1 fără a utiliza dacă:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && aruncatAmbele fișiere se închid.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && aruncatAmbele fișiere se închid.

Ieșire:

Concluzie:

Acest articol a arătat cum să utilizați scripting bash pentru a verifica un fișier sau un director. Am folosit diferite opțiuni pentru a verifica disponibilitatea unui fișier. În primul rând, folosim comanda test cu diferite semnalizatoare. Apoi am învățat utilizarea if, imbricat if-else și fără instrucțiunile if pentru a verifica fișierul sau directorul. De asemenea, am analizat cum să verificăm mai multe fișiere sau directoare.