ignore 规则

通过在sync_dir指定的目录下创建.qrsignore(或.qrsignore.txt)文件,qrsyncqrsboxqrsboxcli可以选择忽略某些文件和文件夹。

文件内容为上传文件过程中需要忽略的项目的匹配模式。若某文件名被匹配则忽略该文件,若某目录名被匹配则忽略该目录下所有文件以及子目录。

匹配规则

路径

  • 首位为/:
    • 当首位为/时,只会匹配从上传目录开始的绝对路径
    • /a.txt 仅仅匹配 a.txt,不会匹配b/a.txt
    • /*.txt 仅仅匹配 a.txtb.txt,不会匹配b/a.txt
  • 首位不为/:
    • 当首位不为/时,只要路径中有一部分和模式匹配就可以
    • b/a.txt 会匹配c/b/a.txtd/c/b/a.txt
    • a.txt 会匹配 a.txtb/a.txt等所有文件名为a.txt的文件
    • *.txt 会匹配 a.txtb/c.txt等所有文件名以.txt为后缀的文件

示例:

文件名 /a.txt /*.txt b/a.txt a.txt *.txt 操作
a.txt 匹配 匹配 - 匹配 匹配 忽略
b.txt - 匹配 - - 匹配 忽略
c.txt - 匹配 - - 匹配 忽略
b/a.txt - - 匹配 匹配 匹配 忽略
b/b.txt - - - - 匹配 忽略
b/c.txt - - - - 匹配 忽略
c/b/a.txt - - 匹配 匹配 匹配 忽略
d/c/b/a.txt - - 匹配 匹配 匹配 忽略
foo.png - - - - - 上传文件
bar.jpg - - - - - 上传文件

通配符

  • * 匹配任意非路径分隔符的符号,如b/*.txt匹配b/a.txt,但是不匹配b/c/a.txt
  • ** 匹配任意字符,包括路径分割符号,如b/**.txt,匹配b/c/a.txt

非模式

当匹配模式以!开头时候则该模式为非模式,与非模式匹配的文件就不会被忽略不论是否与其他模式匹配,比如:

  • 当模式存在!1.txt *.txt这两个,将会匹配除了1.txt文件外的所有以.txt结尾的文件;
  • 当要表达首位的的时候可以用\!来表示,比如想忽略名为 !.txt的文件,匹配模式则为\!.txt

注释

#开头的行为注释,不会执行匹配。

Windows 环境

考虑到 Windows 下面路径分隔符和转义字符\冲突,所以在windows里面的路径分割符跟unix一样用/表示。

示例

使用.qrsignore文件:

# 忽略所有exe后缀的文件
*.exe

# do_not_ignore_me.exe 不忽略,要上传
!do_not_ignore_me.exe

# 忽略目录dir下的所有文件
dir/

如果有任何问题,请进入 七牛云存储问答社区 或者发送 工单 咨询