我有以下 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/.*
.但请注意,这包括.
和..
。