Ako skontrolovať, či súbor existuje v bash

How Check If File Exists Bash



Existuje niekoľko spôsobov, ako skontrolovať dostupnosť súboru v systéme Linux. Testovací príkaz v skriptovaní bash je jedným z kľúčových prístupov ku kontrole existencie súboru.
Cieľom tejto príručky je prediskutovať existenciu súboru vo vašom systéme prostredníctvom skriptovania bash:

Ako skontrolovať existenciu súboru pomocou skriptovania bash:

1) Zadaním názvu súboru do terminálu:







Najprv musíme vytvoriť súbor skriptu bash a použiť nasledujúci príkaz:



$dotýkať satestfile.sh

Názov súboru, ktorý som vytvoril, je testfile.sh, prípona .sh označuje súbor skriptu shell:







Otvorte testfile.sh v ľubovoľnom textovom editore. Potom napíšte skript a uložte ho stlačením tlačidla uložiť.

Jedným zo spôsobov je nájsť súbor tak, že od používateľa v termináli požiadate o názov súboru.



Použite -f skontrolovať existenciu súboru.

Napíšte nasledujúci skript:

#!/bin/bash
zahodil „Zadajte názov súboru“
čítaťnový súbor1
keby [ -f '$ newfile1' ]
potom
zahodil „Súbor sa našiel“
inak
zahodil „Súbor sa nenašiel“
byť

Vráťte sa na terminál a spustite súbor na tlačový výstup:

./názov súboru.sh

V termináli sa zobrazí správa o zamietnutí povolenia.

Spustite ho spustením nižšie uvedeného príkazu:

$chmod+ x testfile.sh

Zadajte názov súboru a výstup sa vytlačí:

2) Zadaním názvu súboru počas písania skriptu:
Ďalší spôsob, ako nájsť súbor, je zadať názov súboru počas písania skriptu. Máme tri spôsoby, ako skontrolovať dostupnosť súboru. Prvý používa príkaz test, druhý používa if s výrazom v hranatých zátvorkách a tretí je aj s dvojitými hranatými zátvorkami, ako je uvedené nižšie:

  1. test VYJADRENIE.
  2. ak [VÝRAZ]
  3. ak [[VÝRAZ]]

Poďme to pochopiť na príkladoch:

1) test [Výraz]
Skopírujte daný skript a vložte ho do editora, uložte ho:

#!/bin/bash
názov súboru= súbor1
keby test -f '$ názov súboru';
potom
zahodil '$ súbornašiel.'
inak
zahodil '$ súbornebol nájdený '
byť

Výkon:

Pretože v mojom adresári nie je žiadny takýto súbor, kód preto zobrazuje správu Súbor nebol nájdený.

2) ak [Výraz]

Skopírujte nasledujúci skript a skontrolujte, či súbor existuje alebo nie:

#!/bin/bash
názov súboru= myfile.txt
keby [ -f '$ názov súboru' ];
potom
zahodil '$ názov súborunašiel.'
inak
zahodil 'názov súboru nebol nájdený'
byť

Výkon:

3) ak [[Výraz]]

Skopírujte nižšie napísaný skript a prilepte ho na terminál:

#!/bin/bash
názov súboru= testovací súbor
keby [[ -f '$ názov súboru' ]];
potom
zahodil '$ názov súborunašiel.'
inak
zahodil '$ názov súborunebol nájdený '
byť

Výkon:

Ak chcete skontrolovať adresár:

3) Zadaním názvu adresára počas písania skriptu

Použi -d vlajka na kontrolu existencie adresára.

V nižšie uvedenom skripte je dir11 premenná, v ktorej uložíte súbor, ktorý nachádzate; v tomto prípade chcem skontrolovať, či názov adresára testDir existuje alebo nie.

#!/bin/bash
dir11= testDir
keby [ -d '11 dolárov' ]
potom
zahodil „Adresár sa našiel“
inak
zahodil „Adresár sa nenašiel“
byť

Výkon:

2) Zadaním názvu súboru do terminálu:
Keď spustíte príkaz v termináli a skontrolujete, či adresár existuje alebo nie, musíte zadať názov adresára, ktorý hľadáte:

#!/bin/bash
zahodil 'zadajte názov adresára.'
čítaťDir1
keby [ -d 'Dir1' ]
potom
zahodil 'adresár bol nájdený'
inak
zahodil 'adresár nebol nájdený'
byť

Výkon:

Kontrola súboru bez použitia príkazu if:

Testovací príkaz je možné vykonať bez príkazu if. Výstup sa zobrazí iba vtedy, ak súbor existuje; inak by neexistoval žiadny výstup:

Napíšte scenár:

  1. test -fmyfile.txt&& zahodil 'súbor bol nájdený'

  2. [ -fmyfile.txt] && zahodil '$ súborbolo nájdené.'

  3. [[ -fmyfile.txt]] && zahodil '$ súborbolo nájdené.'

Výkon:

Kontrola adresára bez použitia príkazu if:

Pomocou nižšie uvedených príkazov skontrolujte, či adresár existuje alebo nie:

  1. [[ -dtestDir]] && zahodil 'adresár existuje'

  2. 2) [ -dtestDir] && zahodil 'adresár existuje'

Výkon:

Kontrola viacerých súborov/adresárov:

1) Kontrola viacerých súborov pomocou príkazov if:
Pomocou príznaku -a skontrolujte existenciu rôznych súborov namiesto použitia vnorených príkazov if/else:

#!/bin/bash
keby [ -fnew_file.txt-do -fnewfile.txt];potom
zahodil 'Oba súbory existujú.'
byť

Ďalším spôsobom je:

#!/bin/bash
keby [[ -fnew_file.txt&& -fnewfile.txt]];potom
zahodil 'Oba súbory existujú.'
byť

Výkon:

2) Kontrola viacerých súborov bez použitia príkazu if:
Nasledujúci príkaz použite na kontrolu viacerých súborov súčasne 1 bez použitia príkazu:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && zahodilOba súbory sa ukončia.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && zahodilOba súbory sa ukončia.

Výkon:

Záver:

Tento článok ukázal, ako používať skriptovanie bash na kontrolu súboru alebo adresára. Na kontrolu dostupnosti súboru sme použili rôzne možnosti. Najprv použijeme príkaz test s rôznymi príznakmi. Potom sme sa naučili používať if, nested if-else a bez príkazov if na kontrolu súboru alebo adresára. Tiež sme sa pozreli na to, ako skontrolovať viac súborov alebo adresárov.