的意思 。和 .. linux 中的目录

Roh*_*hit 9 linux bash filesystems

当在终端中使用ls -la它显示隐藏文件和目录时显示两个目录,即. and ..当列出 dot(.) 目录的内容时,它包含其父目录中的所有文件和目录,是否创建该文件的克隆,如果是,则有是重复文件吗?

并且在运行脚本时,如果我们位于它所在的目录中,我们将使用该点目录 ./script

但不是当我们从另一个目录运行它时

/Document/myscript/script

为什么?

pho*_*ops 16

  • .与说“当前目录”相同。所以./script意味着script在当前目录中执行文件。
  • ..与说“父目录”(一个目录)相同。

此外,如果您在/目录中,则以下之间没有区别:

/Document/myscript/script
Run Code Online (Sandbox Code Playgroud)

./Document/myscript/script
Run Code Online (Sandbox Code Playgroud)

因此,当您使用点 (...) 时,您提供的路径是对于您所在的当前\父目录的。

如果使用完整路径,则该路径是文件的绝对路径。

  • 我补充说,执行 `./script` 而不是 `script` 的原因是它阻止了在你的 PATH 某处执行同名脚本(如果你输入错误脚本名称很重要)? (4认同)
  • 作为安全预防措施,Unix 系统上的 PATH 不包括当前目录 (.)。 (4认同)
  • 是的,你是对的。`./script` 将在当前目录中执行脚本,而只有 `script` 会在 `PATH` 中查找。如果它不在`PATH`中,我认为它不会在当前目录中查找。 (3认同)