我爱总指挥官。我爱Cygwin。但它们并不总是朋友。有一件事让我很烦,那就是 Cygwin 中的符号链接的工作方式。假设我这样做:
$ ln -s my/path/to/nirvana budhism
然后执行:(因为 cygwin 不允许我查看budhism
)
$ cmd
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\projects>type budhism
!<symlink> ■m y / p a t h / t o / n i r v a n a
C:\projects>
看到了吗?我猜 Windows.lnk
文件可能也能解决问题,但不是,我们这里有一个特殊文件。如果 Total Commander 能将该文件识别为其指向的文件/文件夹,那不是很好吗?
有这个插件吗?
答案1
我不想这么说,但我相信你做不到,至少不能以一种可靠的方式。这是关于视窗对阵符号链接对阵赛格威。
符号链接在 Linux 中的作用是在文件系统级别。它们在 Cygwin 中起作用只是因为它能够借助您提到的这些特殊文件“欺骗自己”。
尽管 Windows/NTFS 上有类似的功能,这可能表明 Cygwin 可以使用它们,但是存在很多缺点(它们在 XP 和 Vista+ 上的工作方式不同;它们根本无法在 FAT 分区上工作......)Cygwin 开发人员选择不将它们用于此模拟是合理的。
- 在 Vista+ 上,你可以分别使用
mklink
或mklink /d
创建文件或目录的符号链接 - 在 XP 上您可以创建交界处,(类似于符号链接,但仅适用于目录),但您必须使用外部工具(例如 Sysinternals'
junction.exe
)
尽管我可以想象 Cygwin 的软件包会使其使用不同的技术(可能是一些硬核黑魔法),但如果在 Cygwin/TC 用户的小重叠部分中有开发人员愿意做这样的事情,我会感到惊讶。
我也爱TC。当我使用 Windows 时,我会用双手。但对于 Cygwin,我能给你的最佳建议是:
- 学习使用一些 Linux shell — 例如,bash 可以在地球上几乎所有操作系统上运行
- 学习使用 Midnight Commander — 一款流行的控制台文件管理器。它的运行原理与 TC 相同,几乎与 bash 一样普遍
作为奖励,这些都是控制台,因此您将能够在远程 ssh 连接下使用它们,如果您使用远程类 UNIX 机器,这是必须的。