查找最新修改的 *.c 文件并使用流水线在终端内对其进行编译?

查找最新修改的 *.c 文件并使用流水线在终端内对其进行编译?

最近,我使用 Linux 中的终端编写了更多代码,以更深入地了解编程。现在,我正在尝试使用以下命令自动执行编译过程:

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

它基本上应该找到以 结尾的最新修改文件"*.c"并进行编译。但是我总是得到以下错误:

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

有人能帮助我并解释我做错了什么或给我展示另一种选择吗?

非常感谢,祝您有愉快的一天!

答案1

您正在管道姓名文件作为要编译的代码gcc

您可以将名称作为文件参数传递,而不是使用xargs

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

然而,这项工作的“正确”工具确实是make- 它将确定哪些目标比其先决条件更旧,并根据需要进行编译。

相关内容