Zsh 带前导符的文件的基本名称-(破折号)
我对zsh脚本中的basename有问题。想象一下$directory包含一个带前导破折号的文件名,在我的例子中是“-Fast-”。然后脚本执行Zsh 带前导符的文件的基本名称-(破折号),zsh,filenames,basename,Zsh,Filenames,Basename,我对zsh脚本中的basename有问题。想象一下$directory包含一个带前导破折号的文件名,在我的例子中是“-Fast-”。然后脚本执行 folder=$(basename "$directory") 或者如果我尝试 folder=`basename "$directory"` 这两者都会导致相同的错误: basename:非法选项--F 用法:basename字符串[后缀] basename[-a][-s后缀]
folder=$(basename "$directory")
或者如果我尝试
folder=`basename "$directory"`
这两者都会导致相同的错误:
basename:非法选项--F
用法:basename字符串[后缀]
basename[-a][-s后缀]字符串[…]
除了不使用带前导破折号的文件(这可能很难向普通用户解释)之外,我该怎么做?
谢谢 在大多数命令中,可以使用双破折号
--
来指示“参数结束”
如何完全避免
basename
,只需做一个
folder=$directory:t
顺便说一句,如果您想要等效于dirname
(即目录部分),它将是$directory:h
folder=$directory:t