Cum să verificați dacă fișierul sau directorul există în Bash

Când lucrați cu scripturile Bash și shell, poate fi necesar să verificați dacă un director sau un fișierul există sau nu în sistemul dvs. de fișiere.

Pe baza acestei condiții, puteți ieși din script sau afișa un mesaj de avertizare pentru utilizatorul final, de exemplu.

Pentru a verifica dacă un fișier sau un director există cu Bash, veți folosi „teste Bash”.

În acest tutorial, veți afla cum să verificați dacă există un fișier sau director într-un script Bash.

Cuprins

Verificați dacă există fișier

Pentru a verifica dacă există un fișier în Bash , trebuie să utilizați opțiunea „-f” (pentru fișier) și să specificați fișierul pe care doriți să îl verificați.

De exemplu, să spunem că doriți să verificați dacă fișierul „/ etc / passwd” există sau nu pe sistemul dvs. de fișiere.

Într-un script, ați scrie următoarele dacă declarație.

Verificați existența fișierului utilizând formulare mai scurte

În unele cazuri, este posibil să fiți interesat să verificați dacă există sau nu un fișier direct în shell-ul dvs. Bash.

Pentru a verifica dacă există un fișier în Bash folosind formulare mai scurte, specificați opțiunea „-f” între paranteze și adăugați comanda pe care doriți să o rulați dacă reușește.

Folosind exemplul folosit anterior, dacă doriți să verificați dacă fișierul „/ etc / passwd” există folosind formulare mai scurte, scrieți următoarea comandă

Deci, cum funcționează această comandă?

Formularele mai scurte sunt strâns legate de stările de ieșire.

Când executați o comandă pe Bash, ea iese întotdeauna cu o stare de eroare: 0 pentru erori și numere mai mari de 0 pentru erori (1, 2 .. 6 și așa mai departe)

În acest caz, sintaxa „& &” va verifica dacă starea de ieșire a comenzii din stânga este egal cu zero: dacă acesta este cazul, va executa comanda din dreapta, altfel nu o va executa.

Protip: puteți utilizați „echo $ {?}” pentru a vedea starea de ieșire a ultimei comenzi executate

Verificarea mai multor fișiere

În în unele cazuri, poate doriți să verificați dacă există mai multe fișiere pe sistemul dvs. de fișiere sau nu.

Pentru a verifica dacă există mai multe fișiere în Bash, utilizați marcajul „-f” și specificați fișierele care trebuie verificate separat de operatorul „& &”.

Verificați dacă fișierul nu există

Pe de altă parte, vă recomandăm să verificați dacă un fișier nu există în sistemul dvs. de fișiere.

Pentru a verifica dacă un fișier nu există folosind Bash, trebuie să folosiți „!” simbol urmat de opțiunea „-f” și fișierul pe care doriți să îl verificați.

În mod similar, puteți utiliza formulare mai scurte dacă doriți să verificați rapid dacă un fișier nu există direct în terminalul dvs.

Rețineți că este, de asemenea, posibil să verificați dacă un fișier nu există folosind „||” operator.

„||” operatorul va executa comanda din dreapta dacă și numai dacă comanda din stânga eșuează (adică iese cu o stare mai mare de zero).

Pentru a testa dacă un fișier nu există folosind „||” operator, pur și simplu verificați dacă există folosind semnalizatorul „-f” și specificați comanda de executat dacă nu reușește.

Verificați dacă directorul există

Pentru a verifica dacă există un director în Bash, trebuie să utilizați opțiunea „-d” și să specificați numele directorului care trebuie verificat.

Ca exemplu, să presupunem că doriți să verificați cu Bash dacă directorul / etc există în sistemul dvs.

Pentru a verifica existența acestuia, ați scrie următorul script Bash

Când executați acest script, veți obține următoarea ieșire

Verificați existența directorului utilizând formulare mai scurte

În unele cazuri, ați putea fi interesat să verificați dacă există sau nu un director direct în shell-ul dvs. Bash.

Pentru a verifica dacă există un director în Bash utilizând mai scurt , specificați opțiunea „-d” între paranteze și adăugați comanda pe care doriți să o rulați dacă reușește.

Să spunem că doriți să verificați dacă directorul„ / etc ”există, de exemplu.

Folosind sintaxa mai scurtă, veți scrie următoarea comandă.

Crearea unui script Bash complet

Dacă vă constatați că verificați de mai multe ori pe zi dacă există sau nu un fișier (sau mai multe) pe sistemul de fișiere, ar putea fi la îndemână pentru a avea un script care poate automatiza această sarcină.

În această secțiune, veți crea un script Bash care poate lua mai multe nume de fișiere și se poate întoarce dacă există sau nu.

Dacă nu, un mesaj de notificare simplu va fi afișat pe ieșirea standard.

Creați un nou script Bash și faceți executabil folosind chmod.

Iată conținutul scriptului care va fi utilizat pentru a verifica dinamic dacă există fișiere.

Salvați scriptul și adăugați folderul „bin” pe care tocmai l-ați creat în variabila de mediu PATH.

Acum că scriptul dvs. este accesibil oriunde vă aflați în sistem, puteți să îl apelați și să începeți verificarea dacă există sau nu fișiere.

Minunat!

Ați creat un obiect personalizat pentru a verifica dacă fișierele există sau nu pe sistemul de fișiere.

Concluzie

În acest tutorial, ați aflat cum puteți verifica dacă un fișier există sau nu folosind testele Bash și sintaxa scurtă Bash.

În mod similar, ați învățat cum este posibil să verificați dacă există un director.

În cele din urmă, ați scris un script Bash complet care acceptă argumente dinamice pentru a verifica dacă există sau nu mai multe fișiere.

Dacă sunteți interesat de programarea Bash sau de administrarea sistemului Linux, avem o secțiune completă dedicată acestuia pe site, așa că asigurați-vă că o verificați!

bash

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *