Sådan kontrolleres, om der findes en fil i bash

How Check If File Exists Bash

Der er flere måder at kontrollere tilgængeligheden af ​​en fil i Linux. Testkommandoen i bash scripting er en af ​​de vigtigste metoder til at kontrollere en fils eksistens.
Fokus for denne vejledning er at diskutere eksistensen af ​​en fil i dit system gennem bash scripting:

Sådan kontrolleres fileksistens ved hjælp af bash scripting:

1) Ved at indtaste filnavnet i terminalen:







For det første skal vi oprette en bash-scriptfil, brug den nedenfor nævnte kommando:



$røre vedtestfile.sh

Navnet på den fil, jeg oprettede, er testfile.sh, .sh -udvidelsen angiver shell -scriptfilen:







Åbn testfile.sh i enhver tekstredigerer. Skriv derefter scriptet, gem det ved at trykke på gem.

En måde er at finde en fil ved at bede om et filnavn fra brugeren i terminalen.



Brug -f for at kontrollere filens eksistens.

Skriv nedenstående script:

#!/bin/bash
smed ud 'Indtast dit filnavn'
Læsnyfil1
hvis [ -f '$ nyfil1' ]
derefter
smed ud 'Filen er fundet'
andet
smed ud 'Filen blev ikke fundet'
være

Gå tilbage til terminalen, og kør filen for at udskrive output:

./filnavn.sh

Meddelelse om tilladelse nægtet ville blive vist i terminalen.

Gør det eksekverbart ved at udføre nedenstående kommando:

$chmod+ x testfil.sh

Indtast filnavnet, og det vil udskrive output:

2) Ved at indtaste filnavnet, mens du skriver scriptet:
En anden måde at finde en fil ved at angive filnavnet, mens du skriver scriptet. Vi har tre måder at kontrollere tilgængeligheden af ​​filen. Den første bruger testkommandoen, den anden bruger if med et udtryk i firkantede parenteser, og den tredje er også med if, men dobbelt firkantede parenteser som angivet nedenfor:

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

Lad os forstå det med eksempler:

1) test [Udtryk]
Kopier det givne script og indsæt det i editoren, gem det:

#!/bin/bash
filnavn= fil1
hvis prøve -f '$ filnavn';
derefter
smed ud '$ filhar fundet.'
andet
smed ud '$ filer ikke fundet '
være

Produktion:

Da der ikke er en sådan fil i mit bibliotek, viser koden meddelelsen Fil ikke fundet.

2) hvis [Udtryk]

Kopier følgende script for at kontrollere, om filen findes eller ej:

#!/bin/bash
filnavn= minfil.txt
hvis [ -f '$ filnavn' ];
derefter
smed ud '$ filnavnhar fundet.'
andet
smed ud 'filnavn er ikke fundet'
være

Produktion:

3) hvis [[Udtryk]]

Kopier det nedenfor skrevne script og indsæt det på terminalen:

#!/bin/bash
filnavn= testfil
hvis [[ -f '$ filnavn' ]];
derefter
smed ud '$ filnavnhar fundet.'
andet
smed ud '$ filnavner ikke fundet '
være

Produktion:

Sådan kontrolleres biblioteket:

3) Ved at indtaste biblioteksnavnet, mens du skriver et script

Brug -d flag for at kontrollere, om der findes et bibliotek.

I nedenstående script er dir11 variablen, hvor du gemmer filen, den du finder; i dette eksempel vil jeg kontrollere biblioteksnavn testDir findes eller ej.

#!/bin/bash
dir11= testDir
hvis [ -d '$ dir11' ]
derefter
smed ud 'Directory har fundet'
andet
smed ud 'Telefonbogen er ikke fundet'
være

Produktion:

2) Ved at indtaste filnavnet i terminalen:
Når du kører kommandoen i terminalen for at kontrollere, om biblioteket findes eller ej, skal du indtaste det biblioteksnavn, du søger efter:

#!/bin/bash
smed ud 'skriv dit biblioteksnavn.'
LæsDir
hvis [ -d 'Dir1' ]
derefter
smed ud 'bibliotek er fundet'
andet
smed ud 'biblioteket er ikke fundet'
være

Produktion:

Kontrol af filen uden at bruge if -sætningen:

Testkommandoen kan udføres uden if -sætningen. Det viser kun output, hvis filen findes; ellers ville der ikke være nogen output:

Skriv script:

  1. prøve -fmyfile.txt&& smed ud 'fil ​​er fundet'

  2. [ -fmyfile.txt] && smed ud '$ filer blevet fundet.'

  3. [[ -fmyfile.txt]] && smed ud '$ filer blevet fundet.'

Produktion:

Kontrol af biblioteket uden at bruge if -sætningen:

Brug nedenstående udsagn til at kontrollere, at der findes et bibliotek eller ej:

  1. [[ -dtestDir]] && smed ud 'bibliotek findes'

  2. 2) [ -dtestDir] && smed ud 'bibliotek findes'

Produktion:

Kontrol af flere filer/mapper:

1) Kontrol af flere filer med if -sætninger:
Brug -a -flag til at kontrollere eksistensen af ​​forskellige filer i stedet for at bruge indlejrede if/else -sætninger:

#!/bin/bash
hvis [ -fny_fil.txt-til -fnyfil.txt];derefter
smed ud 'Begge filer findes.'
være

En anden måde er:

#!/bin/bash
hvis [[ -fny_fil.txt&& -fnyfil.txt]];derefter
smed ud 'Begge filer findes.'
være

Produktion:

2) Kontrol af flere filer uden brug af if -sætningen:
Brug følgende erklæring til at kontrollere flere filer samtidigt 1 uden at bruge hvis:

  1. [[ -fny_fil.txt&& -fnyfil.txt]] && smed udBegge filer afslutter.

  2. [[ -fny_fil.txt&& -fnyfil.txt]] && smed udBegge filer afslutter.

Produktion:

Konklusion:

Denne artikel har vist, hvordan du bruger bash scripting til at kontrollere en fil eller et bibliotek. Vi brugte forskellige muligheder for at kontrollere tilgængeligheden af ​​en fil. For det første bruger vi testkommandoen med forskellige flag. Derefter lærte vi brugen af ​​if, nested if-else og uden if-sætningerne for at kontrollere filen eller biblioteket. Vi kiggede også på, hvordan man kontrollerer flere filer eller mapper.