目录中的“。”和“..”是什么?

目录中的“。”和“..”是什么?

根据问题:如何让使用命令提示符更轻松,得票最多的答案中的.和条目是什么?我在执行命令时可以看到它,但它以文件的形式对用户不可见。..dir

如果你不明白我的意思,这里有一个例子:

.
..
Su.exe
Sup.txt
SuperUser.COM

答案1

. 表示当前目录,而 .. 表示父目录。这也使命令行的操作更快,因此您无需输入完整路径。

例子:

上移 2 个目录:

cd ..\..\

或者在基于 UNIX 的系统上,在当前目录中运行可执行二进制文件:

./program

许多 UNIX 脚本也将使用 . 来表示当前目录,以便扫描文件,例如(Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

如果您希望将脚本移动到不同的目录或系统,它的可移植性会更强,因为目录名不是硬编码的。

答案2

用于..在文件系统的层次结构中向上导航。当您不想输入长路径时,或者在编写脚本/程序时,如果不知道它将被安装到哪里,但它知道应该../media/保存所有图像/视频/图标等,它很有用。

单个点.在 Linux 中很有用,因为您想要在当前目录中运行可执行文件,因此您键入它,./a.out因为命令 shell 默认不会在当前目录中搜索可执行文件(出于安全原因)。

.如果您想将当前目录作为参数传递给命令,也可以使用单个点。

答案3

. 是当前目录。您很少需要使用它;大多数命令都会假定当前目录。.. 是下一个级别;这是一个相当有用的快捷方式。如果您在 C:\foo\bar 中并且想要转到 C:\foo\bar2,您可以说

cd ..\bar2

您将进入 C:\foo\bar2。如果您不想进入 bar2,而只想运行 C:\foo\bar.exe,那么您可以说

..\bar.exe

或者 ..\bar 来运行它而不返回父目录。当然,当它代表比 C:\foo 更长的路径时(例如“C:\Users\Daniel\My Dropbox\”),这种方法更有用。

答案4

它们代表:

.

当前目录

.. 

代表父目录

因此,如果您有可执行文件“su.exe”:

  • 您的 Path 环境变量(比如说 C:\MyExecutables\su.exe)
  • 你当前的目录
  • 你的父目录。

你可以像这样执行每一个:

 su.exe  

执行 Path 中的一个

.\su.exe 

执行当前目录中的一个

..\su.exe

执行父目录中的一个。

相关内容