!['./' 在 './manage.py' 或 './bin/buildout' 等命令中起什么作用?](https://linux22.com/image/1342667/'.%2F'%20%E5%9C%A8%20'.%2Fmanage.py'%20%E6%88%96%20'.%2Fbin%2Fbuildout'%20%E7%AD%89%E5%91%BD%E4%BB%A4%E4%B8%AD%E8%B5%B7%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
可能重复:
给出路径时“/”,“./”,“../”代表什么?
示例:为了运行 django 服务器,我使用:
python manage.py runserver
但有些人似乎使用./manage.py runserver
。此命令似乎与上一个命令的作用相同。
该部件的具体作用是什么./
?
答案1
.
是当前目录的路径。
每个目录总是有两个特殊文件,.
和..
,其中第一个代表其自身,而第二个代表父目录。
通过写入./manage.py runserver
,您正在运行manage.py
带有参数的命令runserver
。要查看执行时会发生什么manage.py
,请使用检查文件的内容less manage.py
。
总结一下,两种情况应该没什么区别,除非 manage.py 中声明的 python 版本与默认的 python 版本不同。使用的 pythonmanage.py
可以在第一行看到。
答案2
这./
告诉 shell 你正在引用当前目录。如果您想调用这样的程序,backup
而这恰好是program directories
系统上某个程序中可用的二进制文件,则 shell 会默认运行这个二进制文件。
然而,您可能在自己的程序目录中,碰巧backup
也有一个名为的二进制文件。因此,您可能甚至没有意识到系统实际上正在运行一个完全不同的二进制文件。
通过使用./backup
,您指定希望系统使用当前工作目录中的二进制文件,而不是程序目录中可用的二进制文件。
您可以使用 Linuxwhereis
命令来测试这一点,在此示例中,该命令可能指定backup
实际上在/usr/bin/backup
,而不是也许~/backup
。
答案3
使用./
前缀的主要原因是当前目录不在 $PATH 变量中。至少它不应该在,就像在 Windows 中一样,在;.
PATH 的末尾有一个。
答案4
./
是从当前目录执行操作的简便方法。
../
是在输入给定的文件夹名称之前“上移”文件夹的简便方法。