我在外壳中玩耍,然后键入./。我去下面的输出:
bash: ./: Is a directory
看起来像“ ./”,检查是否存在具有给定名称的目录。我正在尝试查找有关此内容的文档,以了解我的理解是否正确,但无法在线找到任何内容。谁能向我解释这个?
对此的一般定义可能不在Bash手册中找到,而是POSIX规范(“路径名解析”部分):
特殊的文件名点应引用其前身指定的目录。
好吧,如果我们只有前任,那是什么.
?我强调了重要的部分:
如果路径名不是以斜杠开头,则该路径名的第一个文件名的前任应被视为该进程的当前工作目录。
还,
包含至少一个非斜杠字符并且以一个或多个结尾斜杠结尾的路径名,应解析为好像在该路径名后附加了单个点字符('。')
因此,当您键入./
它时,它解析为./.
,它基本上指向您当前的工作目录。当您在shell中键入内容并点击时Enter,shell会尝试将第一部分作为命令执行。(基本上是第一组字符,直到第一个空格。)
没有名为的命令或可执行文件./.
,因此它将失败并告诉您./
“是目录”。有趣的是,它.
是一个命令(它也是一个内置函数,也称为source
),因此,当您键入时,.
您将得到:bash: .: filename argument required
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句