nathan@gentoodesktop ~/Documents $ mkdir test
nathan@gentoodesktop ~/Documents $ mkdir te*/test
mkdir: cannot create directory 'te*/test': No such file or directory
nathan@gentoodesktop ~/Documents $ cd te*
nathan@gentoodesktop ~/Documents/test $ mkdir test
nathan@gentoodesktop ~/Documents/test $ ls
test
答案1
模式只会扩展到现存的名称,并且该模式与te*/test
任何现有名称都不匹配。请注意,这te*/test
是一个完整的模式,并且该te*
部分不与 分开匹配/test
。
由于模式不匹配(并且由于未设置nullglob
和failglob
shell 选项),因此它不会展开并赋予mkdir
,当它无法test
在目录中创建子目录时,它会抱怨te*
。
该命令cd te*
成功,因为该模式te*
与现有目录的名称匹配test
。如果有更多匹配的名称te*
,您可能会收到来自 的错误cd
。
答案2
您可以使用适当的开关来调试此类问题。第一个是-v
,它将产生更多输出,您可以参考。另一种是-p
,如果父目录不存在,它将创建父目录。玩这两个应该会给你一个很好的教训。例如。:
mkdir -pv _dirname_