Bash sjekk om filen eksisterer

Det meste av tiden kan vi finne en situasjon der vi kanskje trenger å utføre en handling som vil kontrollere om en fil eksisterer eller ikke.

I Bash kan vi bruke en «testkommando» for å sjekke om en fil eksisterer og bestemme typen av fil.

Følgende er syntaksen til testkommandoen, og vi kan bruke hvilken som helst av disse kommandoene:

Vi er pålagt å bruke en enkelt brakett «[» -kommando for å gjøre skriptet vårt bærbart for alle POSIX-skall. Den oppgraderte versjonen av testkommandoen inneholder doble parenteser [[«, som støttes på de fleste moderne systemer som bruker Bash, Zsh og Ksh som standard skall.

Sjekk om filen eksisterer

Mens du sjekker om en fil eksisterer, er de mest brukte filoperatørene -e og -f. Alternativet «-e» brukes til å kontrollere om en fil eksisterer uavhengig av type, mens alternativet «-f» bare brukes til å returnere sann verdi hvis filen er en vanlig fil (ikke en katalog eller en enhet).

Det vanligste alternativet for å sjekke om filen eksisterer eller ikke er å bruke testkommandoen med «hvis betinget uttalelse».

Følgende er eksemplene for å kontrollere om «read_file. txt «-fil eksisterer:

Metode 1

Metode 2

Metode 3

Output

Output for alle de tre metodene vil være som nedenfor fordi vi har en fil (read_file.txt) til stede i katalogen:

read_file.txt exist

Hvis vi ønsker å utføre en handling som vil gi et resultat basert på om filen eksisterer eller ikke, kan vi bruke if / then-konstruksjonen i følgende måte:

Eksempel

Output

read_file.txt exist

Vi kan også bruke testkommandoen uten if-setningen. Vi kan bruke en av følgende metoder:

Metode 1

Metode 2

Metode 3

Output

Output for alle de tre metodene vil være som nedenfor fordi vi har en fil (read_file.txt) til stede i katalogen:

read_file.txt exist

Eksempel

I motsetning til & &, uttalelsen etter || operatøren utføres bare hvis utgangsstatusen for testkommandoen er «falsk».

Eksempel

Output

read_file.txt exist

Dette er de vanligste metodene i Bash for å sjekke om filen eksisterer eller ikke.

Sjekk om katalogen eksisterer

Operatøren «-d» lar oss teste om en fil er en katalog eller ikke.

Følgende er metodene for å sjekke om «Javatpoint» -katalogen eksisterer:

Metode 1

Metode 2

Merk: Vi kan også bruke doble parenteser «[[» i stedet for en enkelt parentes «[» .

Output

Output for begge metodene ovenfor vil være som nedenfor, da vi har en katalog (kalt Javatpoint) tilstede på det angitte stedet:

Javatpoint is a directory

Kontroller HVIS filen ikke eksisterer

Testuttrykket kan negeres ved å bruke utropstegnet (! -logisk NOT-operator). Ta en titt på følgende eksempel:

Eksempel

Ovenstående skript kan også skrives som nedenfor:

Output

missing_read_file.txt unavailable

File Test Operators

Testkommandoene inkluderer følgende filoperatører som lar oss test for bestemte filtyper:

-b FileReturns «True» hvis FILEN eksisterer som en blokkspesial fil.
-c FileReturns «True» hvis FILEN eksisterer som en spesialtegnfil.
-d FileReturns «True» hvis FILEN eksisterer som en katalog.
-e FileReturns «True «hvis FILEN eksisterer som en fil, uavhengig av type (node, katalog, stikkontakt osv.).
-f FileReturns » True » hvis FILEN eksisterer som en vanlig fil (ikke en katalog eller enhet).
-G FileReturns «True» hvis FILE eksisterer og inneholder samme gruppe som brukeren kjører komm og.
-h FileReturns «True» hvis FILEN eksisterer som en symbolsk lenke.
-g FileReturns «True» hvis FILEN eksisterer og inneholder set-group-id (sgid) flag set.
-k FileReturns «True» hvis FILEN eksisterer og inneholder et klebrig bit-sett.
-L FileReturns «True» hvis FIL eksisterer som en symbolsk lenke.
-O FileReturns «True» hvis FILEN eksisterer og eies av brukeren som kjører kommandoen.
-p FileReturns «True» hvis FILEN eksisterer som et rør.
– r FileReturns «True» hvis FILEN eksisterer som en lesbar fil.
-S FileReturns «True» hvis FILE eksisterer som en stikkontakt.
-s FileReturns «True» hvis FILEN eksisterer og har ikke-null størrelse.
-u FileReturns «True» hvis FILEN eksisterer, og set-user-id (suid) flagg er satt.
-w FileReturns «True» hvis FILEN eksisterer som en skrivbar fil.
-x FileReturns «True» hvis FILEN eksisterer som en kjørbar fil.

Write a Comment

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *