Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
Python 如何使用gsutil删除gcs中除1以外的多个文件_Python_Bash_Google Cloud Platform_Google Cloud Storage_Gsutil - Fatal编程技术网

Python 如何使用gsutil删除gcs中除1以外的多个文件

Python 如何使用gsutil删除gcs中除1以外的多个文件,python,bash,google-cloud-platform,google-cloud-storage,gsutil,Python,Bash,Google Cloud Platform,Google Cloud Storage,Gsutil,我现在有:gsutil ls gs://basty/*\u TZ001.* gs://basty/20201007_TZ001.csv gs://basty/20201008_TZ001.csv gs://basty/20201009_TZ001.csv 我的问题是,我有一个bcuket,其中有许多文件我想删除除1以外的所有文件(20201009\u TZ001.csv) 我认为使用bash或python我不知道。您可以使用grep(使用-v标志反转结果)过滤结果,并使用xargs gsuti

我现在有:
gsutil ls gs://basty/*\u TZ001.*

gs://basty/20201007_TZ001.csv
gs://basty/20201008_TZ001.csv
gs://basty/20201009_TZ001.csv
我的问题是,我有一个bcuket,其中有许多文件我想删除除1以外的所有文件(
20201009\u TZ001.csv


我认为使用bash或python我不知道。

您可以使用grep(使用-v标志反转结果)过滤结果,并使用xargs

gsutil ls gs://basty/*_TZ001.* |\
  grep -v 20201009_TZ001.csv |\
  xargs -i{} gsutil rm {}
为了确保这正是您想要的,您可以首先执行一个干运行命令:

gsutil ls gs://basty/*_TZ001.* |\
  grep -v 20201009_TZ001.csv |\
  xargs -i{} echo "Will delete: " {}

我有另一个解决办法。这个是基于。我建议您在bucket中创建一个新文件夹。然后,在该项中添加一个临时保留,如下所示:

gsutil-m保留临时设置gs://BUCKETNAME/FOLDER/
然后,将所有不想删除的文件添加到此文件夹中

执行以下命令:

gsutil rm gs://BUCKET/*
您将看到如何跳过文件夹删除所有文件

最后,移除保持:

gsutil-m保留临时版本gs://BUCKETNAME/FOLDER/
在测试MacOS时,我在MacOS上得到了非法选项--I。如果标志更改为
-I