我正在学习Linux,从昨天开始。我有一个问题,我无法回答从我的书或谷歌。./和/在shell中有什么区别?
我之所以问这个问题,是因为当我运行命令./home/yogesh/Desktop/Books时,我会得到以下错误:
bash: ./home/yogesh/Desktop : No such file or directory但是,在移除点时,它会给出
/home/yogesh/Desktop/Books : Is a directory或者,如果我运行/Desktop,它会返回
/Desktop : No such file or directory但是在/之前添加一个点,我得到
./Desktop: is a directory./和/有什么区别?
发布于 2015-05-16 08:06:34
在unix上(像在Windows上一样),/foo是文件或目录的位置(绝对位置,来自根目录:/)。而./foo是一个相对位置(相对于当前目录).您可以省略前面的点+斜杠,只需编写foo。
通过输入命令/Desktop或./Desktop,可以告诉shell执行桌面.是不能执行的。
/Desktop不存在,因此出现了错误消息。
而./Desktop,即/Home/YOURNAME/Desktop的绝对位置,确实存在。但这是个目录不是可执行文件..。您可能忘记了要运行的命令(通常是cd或ls)前缀。
发布于 2015-05-16 08:07:12
样本说明:
/ (斜杠)的意思是根,从文件系统的根。因此,/home/yogesh/Desktop/Books从根开始,然后检查home,在home下检查yogesh等等。这被称为绝对路径。
. (点)意味着从当前目录开始。因此,如果您的当前目录是/home/yogesh,并且您检查了./Desktop,那么它就在那里。这被称为相对路径。
发布于 2015-05-16 13:37:02
在Unix和类Unix系统上,.表示当前目录.例如,ls .与ls相同,它将列出当前目录的内容。因此,当您使用./Desktop作为命令时,它会找到一个名为Desktop的目录,该目录位于当前目录下。然后,您会得到一个错误,告诉您这是一个目录,因此不能执行,因为它不是命令。
/是文件系统的根。它类似于Windows上的C:\。运行/Desktop时,系统将查找/目录中的一个名为Desktop的目录。它并不存在,它告诉你。
例如,如果我在/home/yogesh中,我想去/home/yogesh/Desktop,我可以使用相对路径(相对于我现在所在的目录)并运行cd ./Desktop或cd Desktop,或者我可以使用绝对路径并运行cd /home/yogesh/Desktop。
https://unix.stackexchange.com/questions/203750
复制相似问题