我想获取gcs每个目录下的最新文件名

Posted

技术标签:

【中文标题】我想获取gcs每个目录下的最新文件名【英文标题】:I want to get the latest file names under each directory of gcs 【发布时间】:2021-07-11 05:22:12 【问题描述】:

我想知道使用 gsutil ls 的每个目录下最新文件的路径。

像这样在循环中执行命令非常慢。

我希望最终的输出是

我该怎么做?

我想知道使用 gsutil ls 的每个目录下最新文件的路径。

shell脚本

for dir in dir_list[@];do
  file+=$(gsutil ls -R $dir | tail -n 1);
done

在循环过程中运行命令非常慢。

我希望最终的输出是

还有其他方法吗?

结果图片

gs://bucket/dir_a/latest.txt
gs://bucket/dir_b/latest.txt
gs://bucket/dir_c/latest.txt
gs://bucket/dir_d/latest.txt

【问题讨论】:

【参考方案1】:

没有其他策略是有充分理由的:目录不存在。因此,您需要扫描所有文件,获取元数据,获取最后一个文件,然后为每个“相似前缀”执行此操作。

前缀就是您所说的目录“/path/to/prefix/”。这就是为什么您只能在 GCS 中按前缀而不是按文件模式执行搜索的原因。

因此,您可以想象构建一个自定义应用程序,该应用程序为每个不同的前缀(目录)创建一个专用于该前缀的并发进程(fork)。像这样,您可以执行并行化。写起来没那么简单,但你可以!

【讨论】:

以上是关于我想获取gcs每个目录下的最新文件名的主要内容,如果未能解决你的问题,请参考以下文章

python获取目录下的最新文件夹/文件

java如何查找指定目录下的最新文件

如何在MATLAB中获取特定目录下的所有文件?

VBS获取指定目录下最新文件拷贝然后以当前日期命名

sh 获取目录下的TXT文件列表,删除每个TXT文件的前4行

如何获取一个目录下有多少个文件 java