我面临以下问题:
输出1
sh-3.2$ ls -R
.:
#dir1 #dir2
./#dir1:
f1 f2 f3
./#dir2:
f1 f2 f3
输出2
sh-3.2$ ls #dir1
#dir1 #dir2
如在 Output1 中看到的,目录中#dir1
有文件f1 f2 and f3
,但是当我在目录上执行 ls 时,我得到了不同的输出,如在 Output2 中看到的,Output2 似乎表明#dir1
有类似的目录#dir1 #dir2
。
这是怎么回事?这是循环链接吗?
答案1
#
是一个 shell 元字符,它标记评论的开头。 因此
ls #dir1
实际上与
ls
列出了 cwd 中的所有内容。
尝试逃离#
ls \#dir1
或者引用整个目录名称:
ls '#dir1'
或者
ls ./#dir1
答案2
在命令中ls #dir1
,shell 将井号字符解释为注释的开头——因此您可以获得当前工作目录的列表。