如何在gsutil rsync中包含文件?

wol*_*lfv 7 google-cloud-storage

gsutil rsync有一个"exclude"选项(-x),但没有"include"选项.是否有一些方法可以包含所选文件而不会使整个目录同步?排除除所需文件之外的所有文件将不起作用,因为随机文件将保存到该目录.

https://cloud.google.com/storage/docs/gsutil/commands/rsync

Cod*_*der 7

如果您知道要同步的单个文件的名称,您甚至不需要执行lsBalajee 建议的操作。只需在反向正则表达式中指定基本文件名:

gsutil rsync -x '(?!^myfile\.txt$)' ./directory-with-desired-file gs://my-bucket
Run Code Online (Sandbox Code Playgroud)

此处示例: https: //github.com/GoogleCloudPlatform/gsutil/issues/532#issuecomment-394039557


Bal*_*nki 6

或者,您可以将文件名列表存储在一个数组中,并使用 python 的否定前瞻断言将文件名分隔开来排除该数组 |

https://ask.fedoraproject.org/en/question/92498/include-top-directory-files-in-a-backup/

我有一个类似的场景,文件的逐行副本太长了。我通过运行一个文件列表来创建一个数组来接近它

gsutil ls gs://<bucket_name>/<file_construct>
Run Code Online (Sandbox Code Playgroud)

然后通过用 a 分隔数组元素来创建单个变量 |

gsutil -m rsync -c -x "^(?!${REGEX_INV_EXCLUSION_LST}$).*'" "gs://${source}/" "${dest}/"
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,到 fedoraproject 的链接已经失效,所以这个解决方案现在更多的是一个提示,而不是一个完整的答案。 (2认同)

Mik*_*rtz 5

gsutil rsync 目前没有“包含”选项。