Jak zkontrolovat, zda soubor existuje v bash

How Check If File Exists Bash



Dostupnost souboru v Linuxu lze ověřit několika způsoby. Testovací příkaz ve skriptu bash je jedním z klíčových přístupů ke kontrole existence souboru.
Cílem této příručky je prodiskutovat existenci souboru ve vašem systému pomocí skriptování bash:

Jak zkontrolovat existenci souboru pomocí skriptování bash:

1) Zadáním názvu souboru do terminálu:







Za prvé, musíme vytvořit soubor skriptu bash, použijte níže uvedený příkaz:



$dotektestfile.sh

Název souboru, který jsem vytvořil, je testfile.sh, přípona .sh označuje soubor skriptu shell:







Otevřete testfile.sh v libovolném textovém editoru. Poté napište skript a uložte jej stisknutím tlačítka Uložit.

Jedním ze způsobů je najít soubor tak, že od uživatele v terminálu požádáte o název souboru.



Použití -F zkontrolovat existenci souboru.

Napište následující skript:

#!/bin/bash
vyhodil „Zadejte název souboru“
čístnový soubor 1
-li [ -F '$ newfile1' ]
pak
vyhodil 'Soubor je nalezen'
jiný
vyhodil 'Soubor nebyl nalezen'
být

Vraťte se na terminál a spusťte soubor pro tiskový výstup:

./název_souboru.sh

V terminálu by se zobrazila zpráva o odepření povolení.

Spusťte jej spuštěním níže uvedeného příkazu:

$chmod+ x testfile.sh

Zadejte název souboru a vytiskne výstup:

2) Zadáním názvu souboru při psaní skriptu:
Další způsob, jak najít soubor zadáním názvu souboru při psaní skriptu. Máme tři způsoby, jak zkontrolovat dostupnost souboru. První z nich používá příkaz test, druhý používá if s výrazem v hranatých závorkách a třetí je také s dvojitými hranatými závorkami if, jak je uvedeno níže:

  1. test VYJÁDŘENÍ.
  2. pokud [VÝRAZ]
  3. pokud [[VÝRAZ]]

Pojďme to pochopit na příkladech:

1) test [Výraz]
Zkopírujte daný skript a vložte jej do editoru, uložte jej:

#!/bin/bash
název souboru= soubor1
-li test -F '$ název_souboru';
pak
vyhodil '$ souborbyl nalezen.'
jiný
vyhodil '$ soubornebyl nalezen '
být

Výstup:

Protože v mém adresáři žádný takový soubor není, kód proto zobrazuje zprávu Soubor nebyl nalezen.

2) pokud [Výraz]

Zkopírujte následující skript a zkontrolujte, zda soubor existuje nebo ne:

#!/bin/bash
název souboru= myfile.txt
-li [ -F '$ název_souboru' ];
pak
vyhodil '$ název_souborubyl nalezen.'
jiný
vyhodil 'název souboru nebyl nalezen'
být

Výstup:

3) Pokud [[Výraz]]

Zkopírujte níže napsaný skript a vložte jej do terminálu:

#!/bin/bash
název souboru= testovací soubor
-li [[ -F '$ název_souboru' ]];
pak
vyhodil '$ název_souborubyl nalezen.'
jiný
vyhodil '$ název_souborunebyl nalezen '
být

Výstup:

Kontrola adresáře:

3) Zadáním názvu adresáře při psaní skriptu

Použijte -d příznak pro kontrolu existence adresáře.

V níže uvedeném skriptu je dir11 proměnná, do které uložíte soubor, který nacházíte; v tomto případě chci zkontrolovat, zda název adresáře testDir existuje nebo ne.

#!/bin/bash
dir11= testDir
-li [ -d '11 dir' ]
pak
vyhodil 'Adresář nalezen'
jiný
vyhodil 'Adresář nebyl nalezen'
být

Výstup:

2) Zadáním názvu souboru do terminálu:
Když spustíte příkaz v terminálu, abyste zkontrolovali, zda adresář existuje nebo ne, musíte zadat název adresáře, který hledáte:

#!/bin/bash
vyhodil 'zadejte název adresáře.'
čístDir1
-li [ -d 'Dir1' ]
pak
vyhodil 'adresář byl nalezen'
jiný
vyhodil 'adresář nebyl nalezen'
být

Výstup:

Kontrola souboru bez použití příkazu if:

Testovací příkaz lze provést bez příkazu if. Výstup se zobrazí pouze v případě, že soubor existuje; jinak by nebyl žádný výstup:

Napsat skript:

  1. test -Fmyfile.txt&& vyhodil 'soubor byl nalezen'

  2. [ -Fmyfile.txt] && vyhodil '$ souborbylo nalezeno.'

  3. [[ -Fmyfile.txt]] && vyhodil '$ souborbylo nalezeno.'

Výstup:

Kontrola adresáře bez použití příkazu if:

Pomocí níže uvedených příkazů zkontrolujte, zda adresář existuje nebo ne:

  1. [[ -dtestDir]] && vyhodil 'adresář existuje'

  2. 2) [ -dtestDir] && vyhodil 'adresář existuje'

Výstup:

Kontrola více souborů/adresářů:

1) Kontrola více souborů pomocí příkazů if:
Pomocí příznaku -a zkontrolujte existenci různých souborů namísto použití vnořených příkazů if/else:

#!/bin/bash
-li [ -Fnew_file.txt-na -Fnewfile.txt];pak
vyhodil 'Oba soubory existují.'
být

Dalším způsobem je:

#!/bin/bash
-li [[ -Fnew_file.txt&& -Fnewfile.txt]];pak
vyhodil 'Oba soubory existují.'
být

Výstup:

2) Kontrola více souborů bez použití příkazu if:
Následující příkaz použijte ke kontrole více souborů současně 1 bez použití if:

  1. [[ -Fnew_file.txt&& -Fnewfile.txt]] && vyhodilOba soubory se ukončí.

  2. [[ -Fnew_file.txt&& -Fnewfile.txt]] && vyhodilOba soubory se ukončí.

Výstup:

Závěr:

Tento článek ukázal, jak pomocí skriptu bash zkontrolovat soubor nebo adresář. Ke kontrole dostupnosti souboru jsme použili různé možnosti. Nejprve použijeme testovací příkaz s různými příznaky. Potom jsme se naučili používat if, nested if-else a bez příkazů if ke kontrole souboru nebo adresáře. Také jsme zkoumali, jak zkontrolovat více souborů nebo adresářů.