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

标签 zsh filenames basename

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

        folder=$(basename "$directory")

或者如果我尝试其他语法

        folder=`basename "$directory"`

这都会导致相同的错误:

基本名称:非法选项 -- F 用法:基本名称字符串[后缀] 基本名称 [-a] [-s 后缀] 字符串 [...]

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

最佳答案

如何完全避免 basename 并只执行一个

folder=$directory:t

顺便说一句,如果您想要与dirname(即目录部分)等效的内容,那么它将是$directory:h

关于zsh - 带有前导 -(破折号)的文件的基本名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63694964/

相关文章:

bash - 将 .zsh_history 文件转换为 .bash_history 文件

shell - Z shell 中的 cd -1、-2、-3 等

ruby - RVM 设置 ruby​​ 默认值,当打开新终端时删除 RVM 设置,返回系统 ruby

zsh - 填写当前目录下最近使用的文件

java - 在java中重命名文件/文件夹时如何区分文件和文件夹

c++ - 带有 ifstream 和 ofstream 的可变文件名

php - 清理字符串以使其 URL 和文件名安全?

linux - 仅提取文件名的 Shell 脚本

bash - 如何通过管道查找路径的基本名称