我正在寻找以“以“”开头的每个文件。在目录中。

我正在使用 CMake (来自 CMake 文档:“CMake 需要正则表达式,而不是 glob”)并希望忽略以点开头的每个文件(隐藏文件)但是 "\..*" 或者 "^\..*" 不起作用:(

奇怪的是:这有效(感谢 rq 的 回答)并删除所有隐藏文件和临时文件(“~”终止文件)

file(GLOB DOT ".*")
file(GLOB TILD "*~")

set (CPACK_SOURCE_IGNORE_FILES "${DOT};${TILD}")

但我找不到合适的东西可以直接写入 CPACK_SOURCE_IGNORE_FILES 得到相同的结果!

这里是 ”文档”这个变量。

有帮助吗?

解决方案

听起来 GLOB 可能就是你想要的。

尝试这个。打开文件“test.cmake”并添加以下内容:

file(GLOB ALL "*")
file(GLOB DOT ".*")
file(GLOB NOTDOT "[^.]*")

message("All Files ${ALL}")
message("Dot files ${DOT}")
message("Not dot files ${NOTDOT}")

然后创建几个测试文件:

touch .dotfile
touch notdot

然后运行“cmake -P test.cmake”。输出是:

All Files /tmp/cmake_test/.dotfile;/tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake
Dot files /tmp/cmake_test/.dotfile
Not dot files /tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake

这是用 cmake 2.6.0 测试的。

其他提示

使用标准正则表达式语法:

^\..*

由于CMake的显然不喜欢这样,可以使用这样的:

^\\..*

这只是一个猜测,不过,因为我没有/使用CMake的。

下面的单行就做好了(隐藏的隐藏和代字号(“〜”)封端的文件):

set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*$;~$;${CPACK_SOURCE_IGNORE_FILES}")

您需要逃避它。

^\..*

尝试这种情况:

^[.].*
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top