У цій статті ми напишемо сценарій bash, щоб перевірити, чи існують файли чи ні.
Синтаксис:
- перевірка [вираз]
- [ вираз ]
- [[ вираз ]]
Тут у виразі пишемо параметр і ім'я файлу . Давайте розглянемо деякі параметри, які можна використовувати у виразі: –
- – f: Він повертає True, якщо файл існує як звичайний (звичайний) файл. -d: повертає True, якщо каталог існує. -e : повертає True, якщо існує будь-який тип файлу. -c : повертає True, якщо символьний файл існує. -r : повертає True, якщо файл, який можна читати, існує.
- – в : Повертає True, якщо файл, доступний для запису, існує . -x : повертає True, якщо виконуваний файл існує. -p : повертає True, якщо файл існує як канал. -S: повертає True, якщо файл існує як сокет. -s: повертає True, якщо файл існує і розмір файлу не дорівнює нулю. -L: повертає True, якщо файл символічного посилання існує . -g : повертає True, якщо файл існує та встановлено прапорець ідентифікатора групи утримування. -G : я t повертає True, якщо файл існує та містить той самий ідентифікатор групи, що й у процесі. -k : повертає True, якщо файл існує та встановлено позначку закріпленого біта.
Тепер є ще кілька параметрів для порівняння між двома файлами.
- -ef: повертає True, якщо обидва файли існують і вказують на той самий файл.
приклад:
FirstFile -ef SecondFile>
- -nt: повертає True, якщо FirstFile є новішим за Secondfile.
приклад:
які місяці q3
FirstFile -nt FileOld>
- -ot: повертає True, якщо FirstFile старший за SecondFile.
приклад:
FirstFile -ot SecondFile>
Розглянемо кілька прикладів на основі синтаксису:
- [ вираз ]: спочатку створіть файл під назвою FirstFile.sh і напишіть у ньому наступний сценарій
#!/bin/bash # using [ expression ] syntax and in place # of File.txt you can write your file name if [ -f 'File.txt' ]; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Тепер збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Вихід:

Вихід
Примітка: Оскільки File.txt присутній у системі. Отже, надруковано Файл існує.
- test [вираз]: тепер змініть наведений вище сценарій у FirstFile.sh наступним чином
#!/bin/bash # using test expression syntax and in place # of File2.txt you can write your file name if test -f 'File2.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Тепер знову збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Вихід:

Вихід
Примітка: Оскільки File2.txt відсутній у системі. Отже, надруковано Файл не існує.
- [[ вираз ]]: Знову змініть наведений вище сценарій у FirstFile.sh наступним чином
#!/bin/bash # using [[ expression ]] syntax and in place # of File3.txt you can write your file name if test -f 'File3.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Тепер знову збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Вихід:

Вихід
обхід попереднього замовлення
Примітка: Оскільки File3.txt присутній у системі. Отже, надруковано File is exist .
Розглянемо приклад на основі параметрів:
- Використання параметра -d: Створіть файл під назвою FirstDir.sh і напишіть у ньому наступний сценарій
!/bin/bash if [[ -d 'GFG_dir' ]] ; # Here GFG_dir is directory and in place of GFG_dir you can write your Directory name then echo 'Directory is exist' # If GFG_dir exist then it will be printed else echo 'Directory is not exist' # If GFG_dir is not exist then it will be printed fi>
Тепер збережіть і запустіть файл за допомогою такої команди
sql вибрати як
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Вихід:

Вихід
Примітка: Оскільки GFG_dir присутній у системі. Отже, надрукований каталог існує.
Аналогічно можна використовувати -f , -Це є , -В , -р , -c тощо (відповідно до їх використання) замість -д для перевірки існування різних типів файлів.
Розглянемо приклад, заснований на порівнянні двох файлів:
- Використання -нт параметр
Створіть файл із назвою Comparison_File.sh і напишіть наступний сценарій
#!/bin/bash # New_file.txt and Old_File.txt are names of two files. if [[ 'New_File.txt' -nt 'Old_File.txt' ]] ; then # This will be printed if Condition is true echo 'New_File.txt is newer than Old_File.txt' else # This will be printed if Condition is False echo 'New_File.txt is not newer than Old_File.txt' fi>
Тепер збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Вихід:

Вихід
Примітка: Оскільки обидва файли присутні в системі, а New_File.txt є новішим за Old_File.txt
Давайте подивимося приклад Перевірити, якщо файл не існує:
Створіть файл під назвою Check_Exist.sh і напишіть у ньому наступний сценарій
#!/bin/bash # using ! before -f parameter to check if # file does not exist if [[ ! -f 'GFG.txt' ]] ; then # This will printed if condition is True echo 'File is not exist' else # This will be printed if condition is False echo 'File is exist' fi>
Тепер збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Вихід:

Вихід
Примітка: GFG.txt відсутній у системі. Отже, він надрукує Файл не існує
Розглянемо приклад без використання умови If-else:
Створіть файл під назвою Geeks_File.sh і напишіть у ньому наступний сценарій
масив, відсортований у java
#!/bin/bash # If File exist then first statement will be # printed and if it is not exist then 2nd # statement will be printed. [ -f 'GFG_File.txt' ] && echo 'File is exist' || echo 'File is not exist'>
Тепер збережіть і запустіть файл за допомогою такої команди
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Вихід:

Вихід
Примітка: Оскільки файл GFG_File.txt присутній у системі. Отже, надруковано File is exist .