如何使用 glob 模式仅标记文件而不是文件夹?

问题描述 投票:0回答:2

考虑以下文件结构:

root
   |- folder1
   |- folder2
   |- folderN
   |- file1
   |- file2
   |- fileN

如何仅定位文件而不逐个排除(

!
)每个文件夹?

gulp gitignore glob
2个回答
2
投票

因此,您只需要某个根目录中的文件,而不需要文件夹 这些文件夹的内容。

您正在寻找的 glob 是

*
。这将选择您当前所在目录中的所有文件。或者,如果您想选择
root/*
文件夹中的所有文件(不包括
其子文件夹),请使用 
root。要选择子文件夹和子文件夹内容,您必须使用 Globstar:**


您可以轻松测试您的 glob

这里


0
投票
root/* !root/*/
如果 

root/*

 仅匹配 
root
 目录中的所有内容,则 
!root/*/
 将从匹配中排除所有目录。

全面披露: 当我想只包含根文件夹中的文件以及 1 个子目录时,我遇到了 OP 的 git 稀疏结帐问题。

IMO,@ddprrt 的解决方案应该可以与 git 一起使用,但似乎 git 有自己的 glob 规则的解释和实现。

© www.soinside.com 2019 - 2024. All rights reserved.