Zsh 带前导符的文件的基本名称-(破折号)

Zsh 带前导符的文件的基本名称-(破折号),zsh,filenames,basename,Zsh,Filenames,Basename,我对zsh脚本中的basename有问题。想象一下$directory包含一个带前导破折号的文件名,在我的例子中是“-Fast-”。然后脚本执行 folder=$(basename "$directory") 或者如果我尝试 folder=`basename "$directory"` 这两者都会导致相同的错误: basename:非法选项--F 用法:basename字符串[后缀] basename[-a][-s后缀]

我对zsh脚本中的basename有问题。想象一下$directory包含一个带前导破折号的文件名,在我的例子中是“-Fast-”。然后脚本执行

        folder=$(basename "$directory")
或者如果我尝试

        folder=`basename "$directory"`
这两者都会导致相同的错误:

basename:非法选项--F 用法:basename字符串[后缀] basename[-a][-s后缀]字符串[…]

除了不使用带前导破折号的文件(这可能很难向普通用户解释)之外,我该怎么做?
谢谢

在大多数命令中,可以使用双破折号
--
来指示“参数结束”


如何完全避免
basename
,只需做一个

folder=$directory:t
顺便说一句,如果您想要等效于
dirname
(即目录部分),它将是
$directory:h

folder=$directory:t