gpt4 book ai didi

regex - 为什么 Google Cloud Builder 没有使用 gsutil rsync -x 排除文件?

转载 作者:行者123 更新时间:2023-12-04 07:45:17 25 4
gpt4 key购买 nike

我目前正在运行 gsutil rsync cloud build 命令:

gcr.io/cloud-builders/gsutil
-m rsync -r -c -d -x "\.gitignore" . gs://mybucket/
我正在使用 -x "\.gitignore"这里的论点是尽量不要复制 .gitignore文件,如此处所述:
https://cloud.google.com/storage/docs/gsutil/commands/rsync
但是,在查看存储桶和日志时,它仍然说: 2021-04-23T13:29:37.870382893Z Step #1: Copying file://./.gitignore [Content-Type=application/octet-stream]...所以 rsync尽管 -x "\.gitignore" 仍在复制文件争论。
根据文档 -x是一个 Python 正则表达式,所以 //./.gitignore应该被 \.gitignore 捕获
enter image description here
有谁知道为什么这不起作用以及为什么文件仍在被复制?

最佳答案

rsync.py 源代码:

if cls.exclude_pattern.match(str_to_check):


在 Python 中, re.match如果匹配出现在字符串的开头,则仅返回匹配项。
因此,为了使用 -x 在任何地方找到匹配项参数,您需要在 .* 前面加上您需要查找的模式或与 (?s).* :
gcr.io/cloud-builders/gsutil
-m rsync -r -c -d -x ".*\.gitignore" . gs://mybucket/
注意确保 .gitignore出现在字符串末尾,需要追加 $ , -x ".*\.gitignore$" .

关于regex - 为什么 Google Cloud Builder 没有使用 gsutil rsync -x 排除文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67230947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com