我目前有這個:gsutil ls gs://basty/*_TZ001.*gs://basty/20201007_TZ001.csv
gs://basty/20201008_TZ001.csv
gs://basty/20201009_TZ001.csv我的問題是我有很多文件,我想刪除除 1 ( 20201009_TZ001.csv)之外的所有文件我認為使用 bash 或 python 我不知道。
3 回答

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
您可以使用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: " {}

德瑪西亞99
TA貢獻1770條經驗 獲得超3個贊
我有另一個解決方案。這是基于臨時保留的。我建議您在存儲桶內創建一個新文件夾。然后,向此添加一個臨時保留,如下所示:
gsutil?-m??retention?temp?set?gs://BUCKETNAME/FOLDER/
然后,將您不想刪除的所有文件添加到此文件夾中。
執行命令:
gsutil?rm?gs://BUCKET/*
您將看到如何跳過FOLDER刪除所有文件。
最后,取消保留:
gsutil?-m??retention?temp?release??gs://BUCKETNAME/FOLDER/

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
還有一種解決方案
gsutil ls -r gs://basty/*_TZ001.* | grep -v 20201009_TZ001.csv | gsutil -m rm -I
它工作得非???,因為它同時刪除文件而不是一個一個地刪除(命令中的 -m 選項)
它不使用使整個操作變慢的保持
gs://basty/*_TZ001.*
如果您替換為,它適用于存儲桶文件結構中任何級別的文件gs://basty/**
添加回答
舉報
0/150
提交
取消