【问题标题】:google gsutil limit ls to a given depth level谷歌 gsutil 限制 ls 到给定的深度级别
【发布时间】:2022-01-21 22:51:15
【问题描述】:

我需要弄清楚存储桶中存在哪些子文件夹才能决定同步的路径。

ls -r gs://<my_bucket>/**

返回所有文件和文件夹,那里的树深度>10!!

如何仅获取文件夹和子文件夹的列表,直到最终深度为 3,就像 find -maxdepth 参数一样?

提前致谢

【问题讨论】:

  • 您能否重新表述您的问题并解释您真正想要做什么......这将有助于解决问题
  • 我需要获取子文件夹列表(不包含文件),直到存储桶上的深度为 3,才能发现这些文件夹的名称。我不想下载(rsync)整个 bucker,而只想下载相关的子文件夹,因为我可以从 ls 之类的命令中获取它们的名称。

标签: gsutil


【解决方案1】:

根据documentation,没有提到使用 gsutil 中的最大深度列出文件夹/子文件夹的此类命令。

要获取top level objects of a bucket using node.js,可以通过API完成,如前所述:

`const [files, nextQuery, apiResponse] = await storage.bucket(bucketName).getFiles({autoPaginate: false, delimiter: "/", prefix: ""});`

有关更多信息,您可以参考linkgithub case,其中讨论了类似问题。

这个命令是作为一个技巧提到的: gsutil ls -l gs://bucket_name/folder_name | xargs -I{} gsutil du -sh {}

gsutil du 中没有 --max-depth 支持。您可以编写一个列出一级文件夹名称的脚本,然后遍历这些文件夹并运行 gsutil ls -l $folder/*

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 2013-11-24
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2013-04-25
    相关资源
    最近更新 更多