Выполнить все файлы в списке

У меня есть исходное дерево, которое при запуске make создает несколько исполняемых файлов с именем «001», «002» и т. Д. Я пытаюсь написать скрипт, который найдет все эти исполняемые файлы в моем исходном дереве, а затем выполнит их. У меня это до сих пор:

find build/ -type f -executable | ack --nocolor "\d{3}$"

В котором перечислены исполняемые файлы, которые я хочу выполнить правильно.

Мой вопрос: как я могу запустить все из них? Я подумал, что, возможно, какая-то комбинация xargs и exec будет делать это, но exec похоже, пытается заменить текущую оболочку командой, чего я не хочу.

  • Изменить текст на звездочки на вкладке
  • Как запустить скрипт оболочки (bash) на хромонике?
  • объединить несколько одинаковых эхо-сигналов в один эхо из цикла for в bash
  • Расстояние команды от shebang?
  • Что означает это $ {@: 2} в сценариях оболочки
  • Катить все файлы в папке, включая имя файла, используя цикл for?
  • Есть ли заклинание командной строки для сохранения определенных столбцов по имени в CSV-файле?
  • Как выполнить базовые вычисления в сценарии оболочки?
  • 4 Solutions collect form web for “Выполнить все файлы в списке”

    Пытаться:

     $ find build/ -type f -executable | ack --nocolor "\d{3}$" | while read prog do "$prog" done 

    Это может сработать

     find build/ -type f -executable -exec sh -c 'exec "$1"' _ {} \; 

    Или фильтровать только файлы 001 , 002 ..

     find build/ -type f -name '*[0-9][0-9][0-9]' -executable -exec sh -c 'exec "$1"' _ {} \; 

    Одна из find – это выбор файлов, соответствующих критериям, поэтому вы можете использовать его для выбора файлов, имена которых состоят из трех цифр. И тогда вы можете использовать эту более простую форму:

     find build -name "[0-9][0-9][0-9]" -type f -executable -exec {} ";" 

    И вы могли бы использовать -regex '.*/\d{3} если вы можете найти правильный -regextype чтобы пойти с ним.

     find -type f -name '00[123]' -exec env - {} \; 

    Добавьте в любую среду, которую вы хотите объявить для разных исполняемых файлов. Может быть, 2>/dev/null если есть неисполняемые файлы 00[123] , и вы не хотите слышать об этом.

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