4 bash
我面临以下问题:
输出 1
sh-3.2$ ls -R
.:
#dir1 #dir2
./#dir1:
f1 f2 f3
./#dir2:
f1 f2 f3
Run Code Online (Sandbox Code Playgroud)
输出 2
sh-3.2$ ls #dir1
#dir1 #dir2
Run Code Online (Sandbox Code Playgroud)
正如在 Output1 中看到的,该目录#dir1有文件,f1 f2 and f3但是当我在该目录上执行 ls 时,我得到了一个不同的输出,如 Output2 中所见,Output2 似乎表明该#dir1目录具有#dir1 #dir2.
这里发生了什么?这是某种循环链接吗?
#是一个 shell 元字符,它标志着注释的开始。因此
ls #dir1
Run Code Online (Sandbox Code Playgroud)
实际上与
ls
Run Code Online (Sandbox Code Playgroud)
它列出了 cwd 中的所有内容。
尝试逃避 #
ls \#dir1
Run Code Online (Sandbox Code Playgroud)
或或引用整个目录名称:
ls '#dir1'
Run Code Online (Sandbox Code Playgroud)
或者
ls ./#dir1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
203 次 |
| 最近记录: |