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

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

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

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

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

  • Запустите процесс в определенном окне экрана, если он существует, в противном случае создайте этот экран, а затем сделайте это
  • Параллельные скрипты Python на удаленной машине
  • Какой приоритет я должен дать скрипту, запущенному при запуске?
  • Уменьшить резервный файл журнала
  • Как использовать printf и% s при наличии цветовых кодов?
  • Какова наилучшая практика для представления логического значения в сценарии оболочки?
  • Использование ввода двух разных файлов в цикле for
  • Поиск рекурсивно большого файла
  • 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 - лучшая ОС в мире.