展开 ~, . 和`.`

Tim*_*Tim 7 shell directory

由于~,...是特殊目录,为什么在以下示例中对它们的处理方式不同?

$ echo ~
/home/tim
$ echo ..
..
$ echo .
.
Run Code Online (Sandbox Code Playgroud)
  1. ~ 扩展到目录中,但其他两个没有。
  2. 其他两个从字面上扩展,但~不是。

Ulr*_*arz 18

~是由外壳扩展的特殊名称,.并且..是真正的专有目录名称,因此外壳不会在那里进行扩展。

  • 例如,输入`ls -a`,你会看到`.` 和`..` 目录。它们通常不显示的唯一原因是默认情况下隐藏以“.”开头的任何内容。 (4认同)
  • 查看差异的另一种方法是引用它:`ls -ld '~'` 将给出错误(除非当前目录中有名为 `~` 的目录文件)而 `ls -ld '.'` 将显示当前目录的信息。 (4认同)