Answers:
./
或只是.
当前目录的unix简写。
当前目录不在PATH中时,需要指定它。PATH是运行程序时搜索的文件夹列表。(您可以通过编写来确定它echo $PATH
。)如果可执行文件不在PATH中,则要运行该文件,您需要指定其所在的文件夹。您可以通过提供文件的完整路径来执行此操作,但是如果文件位于当前目录,可以./
用作速记。
同样,../
或者只是..
当前目录上方的目录的简写。
.
。这是因为自动使用当前目录是一个安全漏洞。想象其他人制作了一个程序,将其命名为ls
您cd
,然后将其命名为目录,然后键入ls
命令行中的每个目录都有两个名为.
和的“特殊目录” ..
。它们分别是当前目录和包含当前目录的目录的简写。
因此,例如,cd ./more/directory/names
仅表示“从当前目录开始并在路径中继续”。同样,该命令的cd ..
意思是“更改一个目录。
如果需要当前目录的名称,则可以使用pwd
命令。另外,如果将-a
标志用于ls
,则可以看到这两个特殊目录。也就是说,ls -a
将输出以.
和开头的列表..
。
其他人已经解释了含义.
和..
含义(分别是当前目录和父目录)。这适用于所有路径名。
打开终端时,通常从主目录开始:(~
扩展为/home/username
)。只要您当前的工作目录为,以下路径都是等效的/home/username
:
/home/username
.
../username
../../home/username
../../../home/username
(的父目录/
仍为/
)./././././.
(当前目录在...中的当前目录中)./
(目录中允许使用斜线)/home////username///
(多个斜杠也是如此)千万不能混淆./program
使用. program
。./program
在设置了执行位的情况下运行当前目录中的文件。. ./program
是bash东西,可以替代地编写为source ./program
从program
当前目录中的文件读取bash命令并在当前shell中执行它们的程序。
如果你想知道为什么你可以运行gedit
,而不是/usr/bin/gedit
而不是program
代替./program
或/home/username/program
请参阅相关的问题:
这意味着从开始current directory path
。
让我们假设你有一个path
这样的:
/usr/ /usr/bin/ /usr/local/bin
里面/usr/bin/
有一个名为的可执行文件yiic
。
如果您发出yiic
,它将以中的一个开始/usr/bin/
。
通过发出命令,./yiic
您告诉系统在此可执行文件的当前目录中查找。
/home/mysuser/
并使用导航到那里cd /home/myuser
。进入内部后,我认为只执行yiic即可,因为我在该目录上调用过该命令,它应该可以工作。但是他说命令不归档。如果我也这样做,并且使用了./,那么它将正常运行...您能否再说明一点?
.
是文件夹中的特殊文件ls -la
,在目录中执行a时您可以看到该文件;)