如何使用 cli 从 Azure 文件共享中删除文件夹

How to delete a folder from an Azure Fileshare using cli

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

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

允许我删除文件,但我无法删除文件夹。在网上搜索时,我发现了几个不连贯的解决方案,例如使用 azcopy 工具或 PS 命令,但到目前为止,其中 none 对我有用。

将不胜感激。

您必须使用 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

输出:

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