Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 我想获取gcs每个目录下的最新文件名_Bash_Google Cloud Storage_Gsutil - Fatal编程技术网

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

Bash 我想获取gcs每个目录下的最新文件名,bash,google-cloud-storage,gsutil,Bash,Google Cloud Storage,Gsutil,我想使用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/d

我想使用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

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

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

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