rsync 不会排除 gsutil 4.15 中的隐藏文件

rsync will not exclude hidden files in gsutil 4.15

之前 gsutil 似乎无法上传隐藏文件。现在无法阻止隐藏文件的上传。使用 -x 命令 .*/\..*.*/[.].* 仍然上传隐藏文件和目录。 这是一个本地目录最多一个桶。

是否需要不同的表达方式?

-x 排除选项应该有效:

gsutil rsync -x '\..*|./[.].*$' source-dir gs://your-bucket

您可以从[官方文档]了解更多信息。

这适用于路径中任何位置的隐藏文件和目录:

gsutil rsync -x '.*/\..*|^\..*' source dest

其他答案不适合我。

由于正则表达式没有绑定到字符串的边缘,因此不需要开头和结尾的 .*,而且我们可以使用分组来简化(原文如此!)一点:

gsutil rsync -x '(^|/)\.' source dest

其中 \. 是点本身,(^|/) 指出点应该跟在文件名的开头 (^) 或 / - 一个点之后子文件夹中的文件。