makefile - 如何实现所有没有星号扩展名的文件?
问题描述
有没有办法使用星号实现所有没有扩展名的文件?我想在Makefile或.gitignore实现中使用它来删除或忽略所有非扩展文件,例如README、Makefile和编译的C文件。当我只使用rm *
格式时,它会删除所有文件而不考虑扩展名,而我只想控制非扩展名文件。
解决方案
我将假设没有扩展名的文件名意味着没有点。
在.gitignore
文件中,您可以再次包含(使用!pattern
)已被先前模式排除的文件。所以:
*
!*.*
应该忽略所有没有扩展名的文件(或目录)。
在 aMakefile
中,您可以使用您的 make 版本(您忘记指出)提供的函数或宏。例如,如果您将 GNU make 与wildcard
and一起使用filter-out
:
ALL := $(wildcard *)
WITH_EXTENSION := $(wildcard *.*)
WITHOUT_EXTENSION := $(filter-out $(WITH_EXTENSION),$(ALL))
.PHONY: test
test:
@echo $(WITHOUT_EXTENSION)
注意:最好问两个不同的问题。
推荐阅读
- reactjs - 从不相关的组件 React 刷新数据
- azure - 互联网无法访问部署在 kubernetes 上的服务
- docker-compose - 如何在 docker-compose 文件中自定义网络名称
- spring - Spring Security - 如何从自定义身份验证提供程序中捕获身份验证异常
- react-native - 检索产品列表并显示它们
- javascript - 如何将时间戳格式化为日历格式日期?
- java - 为什么我从 localhost:8080(正确的端口)上的 REST GET 收到 404 Not found 错误(使用 CL 和 Postman)
- javascript - ES6/Javascript:如何进行高效循环以在数组中创建 json 对象?
- php - 使用 PHP 循环遍历 JSON
- arrays - 将值推入多维数组时出现 TSLint 接口错误