При работе с файлами в любой операционной системе пользователь обязательно должен протестировать эти файлы на предмет определенных аспектов, таких как право собственности, права доступа, контент, существование и т. Д. Эти аспекты можно выяснить, связав оператор «if» с различными операторами проверки файлов в Bash. «If -e» и «if -s» - это такие операторы в Bash, которые используются для проверки существования файла. Разница между ними заключается в том, что первый проверяет только наличие файла, тогда как последний также проверяет, есть ли в этом файле какое-либо содержимое или нет. Сегодня мы попытаемся понять использование этих двух операторов, а также нескольких других операторов проверки файлов в Bash.
Примечание. Чтобы продемонстрировать использование операторов проверки файлов в Bash, мы использовали Linux Mint 20.
Примеры использования операторов проверки файлов в Bash
Существуют разные способы использования операторов проверки файлов «if -e» и «if -s». Чтобы объяснить их использование, мы поделимся с вами некоторыми примерами.
Пример использования оператора «if -e»
Для использования оператора «if -e» в Bash необходимо выполнить следующие действия:
Сначала мы создали пустой текстовый файл с именем Test.txt в нашем домашнем каталоге. Затем мы создали файл bash с именем FileTestOperators.sh в том же каталоге. После создания этого файла мы ввели в наш файл сценарий, показанный на следующем изображении. В этом сценарии bash объявлена переменная с именем «файл» и назначен ей текстовый файл с именем Test.txt как его значение. Затем у нас есть оператор «if -e», который выдает «истинный» вывод, если существует какой-либо указанный файл.
Для тестирования нашего скрипта мы запустим его, используя команду, указанную ниже:
$ bash FileTestOperators.ш
В нашем случае, поскольку текстовый файл существует, поэтому вывод нашего скрипта будет истинным, как показано на следующем изображении:
Пример использования оператора «if -s»
Для использования оператора «if -s» в Bash вы должны выполнить шаги, перечисленные ниже:
В этом примере наш сценарий bash такой же, как мы использовали выше. Мы только что изменили оператор «if -e» на «if -s». Также мы использовали тот же пустой текстовый файл Test.текст.
Теперь, когда мы запускаем этот скрипт, вывод будет ложным, потому что оператор «if -s» возвращает истину, если файл существует, а также если он не пуст. Поскольку в нашем случае, хотя файл существовал, он все еще был пуст, поэтому наш вывод оказался ложным, как показано на следующем изображении:
Чтобы сделать этот флаг истинным, мы напишем фиктивный текст в наш текстовый файл, как показано ниже:
Затем мы снова запускаем наш сценарий bash, и на этот раз вывод будет истинным, как показано на следующем изображении, потому что в текстовом файле теперь есть текст.
Примеры использования других операторов проверки файлов
Помимо операторов «if -e» и «if -s», есть и другие операторы проверки файлов. Ниже мы поделимся с вами некоторыми из наиболее важных операторов проверки файлов, помимо тех, которые обсуждались выше.
Пример использования оператора «if -d»
Для использования оператора «if -d» в Bash вы должны выполнить шаги, перечисленные ниже:
В этом примере наш сценарий bash такой же, как мы использовали выше. Мы только что изменили оператор «if -s» на «if -d». Также мы использовали тот же текстовый файл Test.текст.
Оператор «if -d» возвращает истину, если ваш файл является каталогом, в противном случае - ложь. Поскольку наш текстовый файл не был каталогом, вывод будет ложным, как показано на следующем изображении:
Пример использования оператора «if -h»
Для использования оператора «if -h» в Bash необходимо выполнить следующие действия:
В этом примере наш сценарий bash такой же, как мы использовали выше. Мы только что изменили оператор «if -d» на «if -h». Однако на этот раз мы использовали другой файл для тестирования, который фактически являлся символической ссылкой NewBash.ш.
Оператор «if -h» возвращает true, если ваш файл является символьной ссылкой, в противном случае он будет false. Так как наш тестовый файл был символической ссылкой, поэтому вывод будет истинным, как показано на следующем изображении:
Пример использования оператора «if -r»
Для использования оператора «if -r» в Bash вам необходимо выполнить следующие действия:
В этом примере наш сценарий bash такой же, как мы использовали выше. Мы только что изменили оператор «if -h» на «if -r». Также мы использовали тот же текстовый файл Test.текст.
Вывод оператора «if -r» будет истинным, если текущий пользователь может читать файл, в противном случае он будет ложным. Поскольку наш текстовый файл был доступен для чтения, вывод будет истинным, как показано на следующем изображении:
Таким же образом вы можете использовать операторы «if -w» и «if -x», чтобы проверить, является ли файл доступным для записи и исполняемым текущим владельцем, соответственно.
Пример использования оператора «if -O»
Для использования оператора «if -O» в Bash вы должны выполнить шаги, перечисленные ниже:
В этом примере наш сценарий bash такой же, как мы использовали выше. Мы только что изменили оператор «if -r» на «if -O». Также мы использовали тот же текстовый файл Test.текст.
Вывод оператора «if -O» будет истинным, если текущий пользователь владеет файлом, в противном случае он будет ложным. Так как наш текстовый файл принадлежал нам, поэтому вывод будет истинным, как показано на следующем изображении:
Заключение
Эта статья проинформировала читателя об использовании различных операторов проверки файлов в Bash с использованием операционной системы Linux. Используя эти операторы проверки файлов, пользователю становится очень удобно работать с файлами без каких-либо потенциальных трудностей. Есть и другие операторы проверки файлов, которые можно использовать для разных целей. Однако наиболее часто используются те, которые обсуждаются в этой статье.