Как да проверите дали файл съществува в bash

How Check If File Exists Bash



Има няколко начина да проверите наличността на файл в Linux. Командата test в bash scripting е един от ключовите подходи за проверка на съществуването на файл.
Фокусът на това ръководство е да обсъдим съществуването на файл във вашата система чрез bash скриптове:

Как да проверите съществуването на файл с помощта на bash скриптове:

1) Като въведете името на файла в терминала:







Първо, трябва да създадем bash скрипт файл, използвайки посочената по-долу команда:



$докосванеtestfile.sh

Името на файла, който създадох, е testfile.sh, разширението .sh показва файла на скрипта на черупката:







Отворете testfile.sh във всеки текстов редактор. След това напишете скрипта, запазете го, като натиснете save.

Един от начините е да намерите файл, като поискате име на файл от потребителя в терминала.



Използвайте -f за да проверите съществуването на файла.

Напишете следния скрипт:

#!/bin/bash
изхвърлен „Въведете името на файла си“
Прочетинов файл1
ако [ -f '$ newfile1' ]
тогава
изхвърлен „Файлът е намерен“
иначе
изхвърлен „Файлът не е намерен“
бъда

Върнете се към терминала и стартирайте файла, за да отпечатате изход:

./filename.sh

Съобщението за отказано разрешение ще се покаже в терминала.

Направете го изпълним, като изпълните следната команда:

$chmod+ x testfile.sh

Въведете името на файла и той ще отпечата резултата:

2) Като въведете името на файла, докато пишете скрипта:
Друг начин да намерите файл, като дадете името на файла, докато пишете скрипта. Имаме три начина да проверим наличността на файла. Първият използва командата test, вторият използва if с израз в квадратни скоби, а третият също е с if но двойни квадратни скоби, както е посочено по -долу:

  1. тест EXPRESSION.
  2. ако [EXPRESSION]
  3. ако [[EXPRESSION]]

Нека го разберем с примери:

1) тест [израз]
Копирайте зададения скрипт и го поставете в редактора, запазете го:

#!/bin/bash
име на файл= файл1
ако тест -f '$ име на файл';
тогава
изхвърлен '$ файле намерил.'
иначе
изхвърлен '$ файлне е намерен '
бъда

Изход:

Тъй като в моята директория няма такъв файл, следователно кодът показва съобщението Файлът не е намерен.

2) ако [израз]

Копирайте следния скрипт, за да проверите дали файлът съществува или не:

#!/bin/bash
име на файл= myfile.txt
ако [ -f '$ име на файл' ];
тогава
изхвърлен '$ име на файле намерил.'
иначе
изхвърлен 'името на файла не е намерено'
бъда

Изход:

3) ако [[израз]]

Копирайте написания по-долу скрипт и го поставете в терминала:

#!/bin/bash
име на файл= тест файл
ако [[ -f '$ име на файл' ]];
тогава
изхвърлен '$ име на файле намерил.'
иначе
изхвърлен '$ име на файлне е намерен '
бъда

Изход:

За да проверите директорията:

3) Като въведете името на директорията, докато пишете скрипт

Използвай флаг, за да проверите съществуването на директория.

В споменатия по-долу скрипт dir11 е променливата, в която съхранявате файла този, който намирате; в този пример искам да проверя дали името на директорията testDir съществува или не.

#!/bin/bash
dir11= testDir
ако [ '$ dir11' ]
тогава
изхвърлен „Директорията е намерена“
иначе
изхвърлен „Директория не е намерена“
бъда

Изход:

2) Като въведете името на файла в терминала:
Когато изпълните командата в терминала, за да проверите дали директорията съществува или не, трябва да въведете името на директорията, което търсите:

#!/bin/bash
изхвърлен 'въведете името на вашата директория.'
ПрочетиDir1
ако [ „Dir1“ ]
тогава
изхвърлен 'директория е намерена'
иначе
изхвърлен 'директория не е намерена'
бъда

Изход:

Проверка на файла без използване на оператора if:

Тестовата команда може да се изпълни без оператора if. Той ще показва изход само ако файлът съществува; иначе няма да има изход:

Пишете скрипт:

  1. тест -fmyfile.txt&& изхвърлен 'файлът е намерен'

  2. [ -fmyfile.txt] && изхвърлен '$ файлбеше намерен.'

  3. [[ -fmyfile.txt]] && изхвърлен '$ файлбеше намерен.'

Изход:

Проверка на директорията без използване на оператора if:

Използвайте посочените по-долу изявления, за да проверите дали директория съществува или не:

  1. [[ testDir]] && изхвърлен 'директория съществува'

  2. 2) [ testDir] && изхвърлен 'директория съществува'

Изход:

Проверка на множество файлове/директории:

1) Проверка на множество файлове с изрази if:
Използвайте флага -a, за да проверите съществуването на различни файлове, вместо да използвате вложени if/else изрази:

#!/bin/bash
ако [ -fnew_file.txt-да се -fnewfile.txt];тогава
изхвърлен 'И двата файла съществуват.'
бъда

Друг начин е:

#!/bin/bash
ако [[ -fnew_file.txt&& -fnewfile.txt]];тогава
изхвърлен 'И двата файла съществуват.'
бъда

Изход:

2) Проверка на множество файлове без използване на оператора if:
Използвайте следното изявление, за да проверите няколко файла едновременно 1, без да използвате, ако:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && изхвърленИ двата файла излизат.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && изхвърленИ двата файла излизат.

Изход:

Заключение:

Тази статия е показала как да използвате bash скриптове за проверка на файл или директория. Използвахме различни опции, за да проверим наличността на файл. Първо, използваме командата test с различни флагове. След това научихме използването на if, вложено if-else, и без операторите if за проверка на файла или директорията. Разгледахме и как да проверим множество файлове или директории.