这可能不是发布此问题的最佳地点,但我的问题是Linux 中与 Windows 的 Program Files 对应的是什么?。
我是 Windows 新手,习惯于使用 Unix 风格的文件系统,其中有为特定类型的文件指定的文件夹。我想知道在 Windows 中安装程序的正常方式是什么,特别是那些将从 cmd 提示符启动的程序。
到目前为止,我已经为每个程序添加了用户环境变量,并将此变量附加到 PATH。因此,对于 gvim,我将添加
GVIM_HOME
然后附加到我的路径:
%PATH%;%GVIM_HOME%
但现在我想知道我是否应该创建一个文件夹并将其添加到路径中,然后将我的 exe 的快捷方式放入该文件夹中。你们有人知道通常的做法吗?
答案1
知道你从 Unix 开始,真是太有趣了 :-)
通常,Windows 中的目录/文件夹的组织方式与 Unix/Linux 中的不同。我通常有一个“系统”分区,用于安装 Windows 本身和我的应用程序,还有一个“数据”分区,用于保存我自己的数据。在 XP 之后的 Windows 中,这可能有点难以实现,但您自己打开和关闭的任何内容都可以存储在数据分区中。
回到系统分区,任何程序的默认安装位置都是“C:/Program Files”或安装程序会自行确定的其他位置。在“Program Files”下,有二进制文件、文档和所有支持文件供程序运行。但对于像 GVIM 这样的程序,我建议您将其放在 C:/ 下并使用不带空格的路径。然后更新 %PATH。这就是我安装 Perl 和其他在 Unix 世界中更流行的纯命令行工具的方式。或者为了更有条理,您可以创建一个像 C:/cmdtools 这样的文件夹,并将您手动安装的程序放在那里。
答案2
据我所知,没有“常用方法”来做到这一点,主要是因为在(非服务器)Windows 世界中,程序被设计为通过 UI 运行。但我刚刚检查了附近 Windows 框的 %PATH% 变量,它里面有无数不同的路径,所以这可能是最常见的行为。
这也是一个好主意,因为Windows 快捷方式不像 *nix 软符号链接那样工作。它们是磁盘上的实际文件 ( .lnk
),而不是对文件系统上其他位置的引用。您可以有一个充满快捷方式的目录,并且可以从 cmd.exe 内部调用它们(例如,c:\>program.lnk
将运行c:\foo\program.exe
),但每个快捷方式都有一个参数,该参数告诉c:\foo\program.exe
它从哪个目录开始执行。它不像 *nix 中的 $PWD 或 /proc/[pid]/cwd。不要搞砸,这非常重要,因为它会影响 DLL 加载等事情。
foo.lnk
(此外,必须从 CLI调用而不是直接调用foo
对我来说似乎有点笨拙。)
无论如何,这是我在 XP Pro 上的经验。对于较新版本的 Windows 和命令 shell,可能存在差异。