例如,我可以执行以下操作
touch a
或者
touch ./a
然后,当我这样做时,ls
我可以同时查看两者,那么这到底是./
为了什么?
答案1
点斜杠./
是当前目录中某些内容的相对路径。
点是当前目录,斜线是路径分隔符。
当您给出命令时,touch ./a
您说“touch
使用参数运行实用程序./a
”,并将在当前目录中touch
创建(或更新时间戳)文件。a
touch a
和之间没有区别,因为这两个命令都会作用于当前目录中touch ./a
调用的内容。a
以类似的方式,touch ../a
将作用于a
当前目录上方的目录,..
指的是“层次结构中更靠上的一个目录”。
.
是..
两个特殊目录名称存在于 Unix 系统上的每个目录中。
有时,能够放在./
文件名前面很有用,例如当您尝试创建或删除或只是使用破折号作为文件名第一个字符的文件时。
例如,
touch -a file
不会创建名为 的文件-a file
,也不会
touch '-a file'
但,
touch ./'-a file'
会。
答案2
./
当尝试运行当前目录中的脚本或其他可执行文件时,该表示法很有用。与 Windows 命令提示符不同,Unix(以及 Linux 等类 Unix 系统)shell 在检查环境变量之前不会检查当前目录中的可执行文件,并且出于安全原因,PATH
Unix 系统往往不会包含./
在 中。PATH
通过必须指定
./executable
而不仅仅是
executable
用户说:“是的,我做想要在当前目录中运行此可执行文件”
答案3
这称为相对路径。
.
代表当前工作目录。因此,如果您当前位于/home/jesse
,.
则只是一个链接,/home/jesse
因此当您指向时,./
您实际上是在指向/home/jesse/