Помогите мне понять, почему эта функция bash не работает рекурсивно

Структура каталога:

one.pdf
./subdir/two.pdf
./anothersubdir/three.pdf

Когда я печатаю:

find ./ -type f -name "*.pdf" 

он извлекает все pdf-файлы, включая подкаталоги.

Функция Bash

 function getext {find ./ -type f -name "$1"} 

С помощью этой функции в bashrc введите:

 getext *.pdf 

Он извлекает только «one.pdf», но не остальное.

Вопрос : что здесь происходит с функцией? Что не хватает по сравнению со стандартным входом, чтобы получить только первый файл и остановиться?

Спасибо за помощь.

One Solution collect form web for “Помогите мне понять, почему эта функция bash не работает рекурсивно”

По той же причине, что вы указываете "*.pdf" в аргументах для find внутри вашей функции, вам нужно процитировать ее при вызове функции:

 getext "*.pdf" 

В противном случае оболочка попытается сопоставить *.pdf с именами файлов в текущем каталоге, в результате чего она будет расширена – в этом случае до one.pdfперед передачей вашей функции.

  • Вернуть вывод команды в ассоциативный массив
  • Дождитесь завершения загрузки нескольких файлов
  • Неожиданная ошибка EOF и синтаксиса
  • Как подождать файл в сценарии оболочки?
  • Скрипт для обеспечения работы только одного экземпляра Oracle
  • Скрипт для подсчета файлов, соответствующих шаблону в подкаталогах
  • Хороший метод для сравнения времени?
  • printf в сценарии оболочки can not do \ x% x
  • Копирование больших файлов - создает ли пустым файл в пункте назначения?
  • Как написать скрипт bash для настройки моих дисплеев, когда HDMI подключен или отсоединен
  • Как изменить сортировку результата из grep -rc
  • Interesting Posts

    Программное обеспечение gnome не работает на Fedora 24

    Команда запускалась как неправильный пользователь при загрузке, в то время как явно сказано, что она запускается как root

    Почему .bash_profile не может установить переменную PS1?

    Создается ли раздел, созданный dd (и кэшем), мгновенно доступный для записи

    Как работает система unix или linux?

    Хотя wirehark видит ответ ping, программа ping не получает ответ, если в таблице маршрутизации есть недостижимый маршрут дефалтов

    Debian Stretch gnome DE: добавление раскладки клавиатуры

    Могу ли я настроить параметры отображения оболочки?

    Объяснение sed в сценарии оболочки

    Как восстановить мой Linux?

    Как использовать интернет-модем iphone через USB с Ubuntu 10.04

    TUI Tool для изменения правил разрешения каталога?

    Как я могу печатать выходные данные при отключении от управляющего терминала?

    Всесторонний сценарий /etc/auto.disks для autofs, который учитывает все смонтированные диски, включая NTFS и FAT32?

    Как суммировать номера совпадений

    Linux и Unix - лучшая ОС в мире.