Проверка наличия файла по выводу команды ls
На этом этапе вы узнаете еще один распространенный способ проверить наличие файлов и каталогов: с использованием вывода команды ls
. Команда ls
выводит список содержимого каталога. Объединяя ls
с другими командами, вы можете эффективно проверить, существует ли конкретный файл.
Сначала выведем список содержимого текущего каталога (~/project
) с помощью команды ls
.
Введите следующую команду и нажмите Enter:
ls
В выводе вы должны увидеть my_file.txt
, так как вы создали этот файл на предыдущем этапе.
my_file.txt
Теперь попробуем проверить наличие именно файла my_file.txt
с использованием команд ls
и grep
. grep
- это мощный инструмент для поиска текстовых шаблонов. Мы можем перенаправить вывод команды ls
в grep
, чтобы проверить, появляется ли имя файла в списке.
Символ вертикальной черты |
берет вывод команды слева и передает его в качестве входных данных команде справа.
Введите следующую команду и нажмите Enter:
ls | grep my_file.txt
Если файл my_file.txt
существует, grep
найдет его в выводе команды ls
и выведет строку, содержащую имя файла.
my_file.txt
Если файл не существует, grep
не найдет шаблон и не выведет ничего.
Как и в случае с командой test
, вы можете проверить статус завершения команды grep
, чтобы определить, был ли найден файл. grep
возвращает 0
, если находит совпадение, и 1
, если не находит.
Введите следующую команду и нажмите Enter:
echo $?
Вы должны увидеть 0
, что означает, что grep
нашел файл my_file.txt
.
Теперь попробуем снова проверить наличие несуществующего файла с использованием команд ls
и grep
.
Введите следующую команду и нажмите Enter:
ls | grep non_existent_file.txt
Эта команда не выведет ничего, так как файл non_existent_file.txt
отсутствует в списке содержимого каталога.
Проверьте статус завершения:
echo $?
Вы должны увидеть 1
, что означает, что grep
не нашел файл non_existent_file.txt
.
Использование команд ls
и grep
- это очень распространенная практика в сценариях (скриптах) оболочки для проверки существования файлов и каталогов, особенно когда вам нужно дополнительно обработать вывод.
Нажмите Продолжить, чтобы перейти к следующему этапу.