Найдите последними, изменил *.c файл, и скомпилируйте его в терминале с конвейерной обработкой?

В последнее время я кодировал немного больше с терминалом в Linux для получения более глубокого понимания программирования. Прямо сейчас я пытаюсь автоматизировать процесс компиляции со следующей командой:

find . -type f -mmin -1 -name "*.c" | gcc -o output.o -xc -

Это basicly должно найти последний измененный файл с окончанием "*.c" и скомпилируйте его. Однако я всегда получаю следующую ошибку:

<stdin>:1:1: error: expected identifier or ‘(’ before ‘.’ token

Кто-либо мог помочь мне и объяснить, что я делаю неправильно или показываю мне альтернативу?

Большое спасибо и хорошего дня!

0
задан 24 August 2018 в 13:01

1 ответ

Вы передаете название по каналу файла как код, который будет скомпилирован gcc

Можно передать имя как аргумент файла вместо этого с помощью xargs:

find . -type f -mmin -1 -name "*.c" | xargs gcc -o output.o -xc

Однако "правильный" инструмент для этого задания действительно make - который определит, какие цели являются более старыми, чем их предпосылки и компилируют их как требуется.

2
ответ дан 28 October 2019 в 02:20

Другие вопросы по тегам:

Похожие вопросы: