首页 > 解决方案 > 如何实现所有没有星号扩展名的文件?

问题描述

有没有办法使用星号实现所有没有扩展名的文件?我想在Makefile.gitignore实现中使用它来删除或忽略所有非扩展文件,例如READMEMakefile和编译的C文件。当我只使用rm *格式时,它会删除所有文件而不考虑扩展名,而我只想控制非扩展名文件。

标签: makefilegitignore

解决方案


我将假设没有扩展名的文件名意味着没有点

.gitignore文件中,您可以再次包含(使用!pattern)已被先前模式排除的文件。所以:

*
!*.*

应该忽略所有没有扩展名的文件(或目录)。

在 aMakefile中,您可以使用您的 make 版本(您忘记指出)提供的函数或宏。例如,如果您将 GNU make 与wildcardand一起使用filter-out

ALL := $(wildcard *)
WITH_EXTENSION := $(wildcard *.*)
WITHOUT_EXTENSION := $(filter-out $(WITH_EXTENSION),$(ALL))

.PHONY: test
test:
    @echo $(WITHOUT_EXTENSION)

注意:最好问两个不同的问题。


推荐阅读