#linux #bash
#linux #bash
Вопрос:
Мой скрипт получает подстановочный знак в качестве параметра, и мне нужно применить к find
нему команду. Проблема в том, что если я не заключаю параметр в кавычки, оболочка расширяет его относительно текущего каталога, но если я это сделаю, find
команда вообще не расширяет его.
Мой код в настоящее время выглядит так :
find /bin/"$1"
и $1
это *sh*
Если я запускаю его как /bin/*sh*
в терминале, он работает так, как задумано.
Ответ №1:
-name
Тест — это то, что расширяет подстановочные знаки при использовании find
. Попробуйте это:
find /bin/ -name "$1"
Комментарии:
1. Спасибо! Какая-либо конкретная причина, по которой это дает результаты в другом порядке?
2. Оболочка сортирует глобальные результаты, но
find
не выполняет никакой сортировки. Это позволяет ему печатать результаты, как только он находит каждый файл, а не ждать до конца. Вам понадобится руководство| sort
или тому подобное, если вы хотите, чтобы имена файлов располагались в определенном порядке.