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

17 windows

基于以下问题:How to make using command prompt less pain , the .and ..entry in the most voted answer? 我在执行dir命令时看到它,但它以文件的形式对用户不可见。

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

.
..
Su.exe
Sup.txt
SuperUser.COM
Run Code Online (Sandbox Code Playgroud)

Joh*_*n T 43

这 。是当前目录,而 .. 表示父目录。它也使命令行中的事情变得更快,因此您无需输入完整路径。

例子:

上2个目录:

cd ..\..\
Run Code Online (Sandbox Code Playgroud)

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

./program
Run Code Online (Sandbox Code Playgroud)

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

#!/usr/bin/perl

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

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

  • 3 点对我不起作用,使用 Vista (5认同)
  • 它鲜为人知,但 Windows 命令行进一步扩展了这一点。. = 此目录 .. = 父目录 ... = 父目录的父目录 3 个点有时很有用,远不止于此,但它太难处理了。 (3认同)
  • 我也不喜欢 Windows 7 64 位 RTM。对我来说听起来像是一个神话。..\.. 有什么问题吗? (2认同)
  • @salmonmoose:在 XP 上也不适合我。 (2认同)
  • `cd ...` [适用于 Windows 98 的 `command`](http://i.stack.imgur.com/fdmZX.png)。[Windows XP 似乎不支持它](http://i.stack.imgur.com/AQr8y.png)。 (2认同)

has*_*sen 10

..用来浏览该文件系统的层次结构。当您不想输入很长的路径时,或者在编写不知道将安装在哪里但知道../media/应该保存所有图像/视频/图标等的脚本/程序时,这很有用。

单点.在 linux 中很有用,您希望在当前目录中运行可执行文件,因此您可以键入,./a.out因为默认情况下命令 shell 不会在当前目录中搜索可执行文件(出于安全原因)。

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


Dan*_*l H 5

这 。是当前目录。你很少需要使用它;大多数命令将假定当前目录。.. 是下一个级别;这是一个相当有用的捷径。如果你在 C:\foo\bar 并且你想去 C:\foo\bar2 你可以说

cd ..\bar2
Run Code Online (Sandbox Code Playgroud)

你将在 C:\foo\bar2 中。如果你不想去bar2而只想运行C:\foo\bar.exe,那么你可以说

..\bar.exe
Run Code Online (Sandbox Code Playgroud)

或 ..\bar 运行它而不返回到父目录。当然,这在你表示比 C:\foo 更长的路径时更有用(例如“C:\Users\Daniel\My Dropbox\”。