Basename 无法接受带破折号的文件名

ave*_*123 5 bash shell

我正在编写一个需要输入文件名的 bash 脚本,它可能类似于:

“文件名 - Copy.txt”

当我尝试获取该文件的文件名时,basename 似乎将破折号作为操作数并失败。

basename: extra operand "Copy"

我有一些这样的:

echo $(basename -- $eachFile)

Joh*_*don 5

用于echo $(basename "$eachFile")避免 bash 解释器将文件名中的空格视为参数之间的空格basename