【问题标题】:How to delete a folder from an Azure Fileshare using cli如何使用 cli 从 Azure 文件共享中删除文件夹
【发布时间】:2021-12-23 05:04:35
【问题描述】:

我正在尝试通过脚本删除文件共享的内容,以便按计划或按需清理它。

az storage file delete -s $myshare -p $folderOrFileName --account-name $accountName --account-key $accountKey

允许我删除文件,但我不能删除文件夹。在网上搜索时,我发现了几个不连贯的解决方案,例如使用 azcopy 工具或 PS 命令,但到目前为止,它们都不适合我。

我们将不胜感激。

【问题讨论】:

标签: azure azure-cli azure-files


【解决方案1】:

您必须使用az storage directory delete 而不是az storage file delete 来删除文件共享中存在的文件夹,因为文件删除只会删除文件而不是文件夹(目录)。

我在我的环境中测试了场景:

但是当我直接使用下面的命令时,我得到另一个错误,因为目录不是空的,它无法删除整个目录。

 az storage directory delete --share-name test --name ansumandirectory --account-name ansumanadls1234 --account-key <accountkey>

所以,为了删除目录,我必须先删除其中存在的文件。所以我使用了下面的脚本:

$sharename = "test"
$foldername = "ansumandirectory"
$accountname = "ansumanadls1234"
$accountkey = "accountkey"
$source= "$sharename/$foldername"
az storage file delete-batch --source $source --account-name $accountname --account-key $accountkey 
az storage directory delete --share-name $sharename --name $foldername --account-name $accountname --account-key $accountkey

输出:

注意:如果你的目录是Empty那么你可以直接使用az storage directory delete命令,它会删除该文件夹。但如果它不为空,则使用az storage file delete-batch 通过目录删除命令删除所有文件(如上述脚本中所做的那样)。

【讨论】:

  • 是的。这就是我找到的解决方案。我必须编写一个脚本来递归遍历文件夹树,因为只能删除空文件夹。
  • 很高兴能帮助@Demiurge :))
猜你喜欢
  • 2021-05-08
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2020-09-30
相关资源
最近更新 更多