我为 Ubuntu 下载了 VS Code 的.deb
文件。我将其重命名为vs.deb
.
然后我去我的下载目录:
cd ~/Downloads
现在我在这里,我尝试安装它:
sudo apt install vs.deb
这就是我得到的:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package vs.deb
E: Couldn't find any package by glob 'vs.deb'
但是当我使用 安装它时./vs.deb
,它会被安装:
sudo apt install ./vs.deb
为什么Linux不接受同一目录中的文件名而不需要相对路径?
您所经历的与 shell 无关,而是与
apt
命令如何解释命令行上的参数有关。它主要用于从软件存储库安装软件包。默认情况下,参数 to
apt
表示软件源中包的名称。消息:清楚地表明软件包
vs.deb
在软件源中不存在。不过,
apt
允许您直接安装下载的.deb
包文件并为其解析依赖项。您必须提供明确的文件路径以指示您要安装.deb
文件。./vs.deb
已经表示文件路径:./
表示当前目录,所以apt会vs.deb
在当前目录中查找文件。实际上,“找到”文件的从来不是shell。shell 只是将参数传递给应用程序,由应用程序来解释这些参数。最多,shell 会进行扩展(例如,替换
*
为所有文件名或~
主文件夹的完整路径)或变量替换(例如$HOME
,替换为该变量的内容)。