gpt4 book ai didi

具有排除模式的 Azure CLI 存储删除批处理

转载 作者:行者123 更新时间:2023-12-02 23:29:48 26 4
gpt4 key购买 nike

考虑此 blob 列表(或任何存储数据):

backup-2018-08-29-0000.archive
backup-2018-08-29-0100.archive
backup-2018-08-29-0200.archive
backup-2018-08-29-0300.archive
backup-2018-08-29-0400.archive
backup-2018-08-29-0500.archive
backup-2018-08-29-0600.archive
backup-2018-08-29-0700.archive
backup-2018-08-29-0800.archive
backup-2018-08-29-0900.archive
backup-2018-08-29-1000.archive
backup-2018-08-29-1100.archive
backup-2018-08-29-1200.archive
backup-2018-08-29-1300.archive
backup-2018-08-29-1400.archive
backup-2018-08-29-1500.archive
backup-2018-08-29-1600.archive
backup-2018-08-29-1700.archive
backup-2018-08-29-1800.archive
backup-2018-08-29-1900.archive
backup-2018-08-29-2000.archive
backup-2018-08-29-2100.archive
backup-2018-08-29-2200.archive
backup-2018-08-29-2300.archive

我希望删除除一个之外的所有文件。所以我最初的想法是使用 --pattern 标志。

--pattern

The pattern used for globbing files or blobs in the source. The supported patterns are '*', '?', '[seq]', and '[!seq]'.

source

但我找不到有关“*”、“?”、“[seq]”和“[!seq]”如何工作的信息。

在下面的命令中,什么模式将捕获除 backup-2018-08-29-0000.archive 之外的所有文件?

$ az storage blob delete-batch --source mycontainer --pattern <pattern>

更新

另一个问题是我在一年多的时间里收集了大约 10000 个备份。使用非批处理操作似乎不切实际。

最佳答案

我怀疑是否有一种简单的方法可以使用通配符来做到这一点(使用正则表达式会很容易)。[seq][!seq] 的工作原理如下:

--pattern backup-2018-08-29-[01]???.archive

将删除所有29-后的第一个数字为01的文件:

backup-2018-08-29-0000.archive
backup-2018-08-29-0100.archive
backup-2018-08-29-0200.archive
backup-2018-08-29-0300.archive
backup-2018-08-29-0400.archive
backup-2018-08-29-0500.archive
backup-2018-08-29-0600.archive
backup-2018-08-29-0700.archive
backup-2018-08-29-0800.archive
backup-2018-08-29-0900.archive
backup-2018-08-29-1000.archive
backup-2018-08-29-1100.archive
backup-2018-08-29-1200.archive
backup-2018-08-29-1300.archive
backup-2018-08-29-1400.archive
backup-2018-08-29-1500.archive
backup-2018-08-29-1600.archive
backup-2018-08-29-1700.archive
backup-2018-08-29-1800.archive
backup-2018-08-29-1900.archive

[!seq] 只是否定了这一点:

--pattern backup-2018-08-29-[!01]???.archive

这将删除:

backup-2018-08-29-2000.archive
backup-2018-08-29-2100.archive
backup-2018-08-29-2200.archive
backup-2018-08-29-2300.archive
<小时/>

回答你的问题。我会将 blob 重命名(复制)为例如backup-keep.archive,然后使用模式 backup-2018-08-29-????.archive

删除剩余的备份

关于具有排除模式的 Azure CLI 存储删除批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com