Vim 和 Windows 如何在 Program Files 目录中看到两个具有相同名称的不同文件

Car*_*ker 6 windows cygwin vim

我看到 vim、Cygwin 工具和 Windows7 之间存在奇怪的交互。我不认为这是一个错误,但与此同时,我不知道如何解释我所看到的。

我在以下位置安装了 Vim(来自 vim.org,而不是 Cygwin vim):

"C:\Program Files (x86)\Vim".
Run Code Online (Sandbox Code Playgroud)

我 cd 到这个目录并使用 vim 本身编辑了我的 _vimrc 文件。

vim _vimrc
Run Code Online (Sandbox Code Playgroud)

我添加了一些设置,写出文件,然后退出。

然后,我将该文件复制到其他目录以创建更改的备份。

copy _vimrc c:\tmp
Run Code Online (Sandbox Code Playgroud)

那个时候我注意到了这个问题。该文件的副本包含我的更改。随后进行了大量调查。我将总结调查结果。

在 "C:\Program Files (x86)\Vim" 中,如果我使用以下任何一项检查文件,我会看到我的更改:

vim, cat, less
Run Code Online (Sandbox Code Playgroud)

(这里, cat 和 less 是 Cygwin 版本。)

但是,如果我使用以下任何一项检查文件,我看不到我的更改:

notepad, type, more
Run Code Online (Sandbox Code Playgroud)

(命令类型和更多是标准的 Windows shell 命令。)

给你一个味道:

c:\Program Files (x86)\Vim>ls -l _vimrc
-rwx------+ 1 carlx Domain Users 936 Dec 23 21:15 _vimrc

c:\Program Files (x86)\Vim>dir _vimrc
 Volume in drive C is OSDisk
 Volume Serial Number is 6C86-85EB

 Directory of c:\Program Files (x86)\Vim

06/28/2011  02:09 PM               901 _vimrc
               1 File(s)            901 bytes
               0 Dir(s)  95,964,721,152 bytes free
Run Code Online (Sandbox Code Playgroud)

Cygwin ls 命令显示与 Windows dir 命令不同的文件(不同的日期和大小)。

我认为这可能是文件名大小写的某种问题,但是将 _VIMRC 与 _vimrc 指定给这些命令中的任何一个都没有区别。

谁能解释一下我在这里看到的?

Car*_*ker 0

正如 Raymond Chen 和 @kreemoweet 在他们的评论中推测的那样,这是一个文件系统虚拟化问题,我在以下位置找到了该文件:

c:\users\<youraccoutname>\appdata\local\virtualstore\program files(86)

这就是答案。多谢你们。