当模式匹配此字符串时,为什么 Bash 返回“No such file..”?

当模式匹配此字符串时,为什么 Bash 返回“No such file..”?

我有以下 for 循环:

for f in ~/.lo-rcs/common/*
do
   . $f
done

返回此错误:

bash: /home/sk/.lo-rcs/common/*: No such file or directory

我不断将 bashrc 命令分类到多个单独的文件中,并将它们保存在$HOME/.lo-rcs/common.我希望所有文件都自动导入到 Bash 中,但它不断抛出“没有这样的文件...”错误。

问题

为什么 Bash 不搜索与通配模式字符串同名的文件?

  • 注意#1: .lo-rcs/common是我的本地 rc 配置文件夹,其中包含单独的别名文件,一个用于导出变量,一个用于函数等,以便于维护。
  • 笔记2:下面的所有文件.lo-rcs/common都是隐藏文件,又名。前面有点的文件。

答案1

~/.lo-rcs/common/*匹配该目录中的所有非隐藏文件,如果该目录中没有文件或所有文件都被隐藏,则该模式将对其自身求值,从而导致错误消息。

没有充分的理由隐藏这些文件。 - 只需重命名它们,一切都会按预期进行。

如果您确实希望隐藏这些文件,那么您可以使用~/.lo-rcs/common/.*.但请注意,这包括...

相关内容