0

我试图找到在 Windows/NTFS 下复制过程的以下结果的解释。

在源目录中,有 2 个文件:

C:\test>dir /x
[..]
12/18/2015  12:21 PM         4,638,208 06-05-~3.PPT 06-05-29, Testfile.ppt
12/18/2015  12:21 PM         1,683,456              06-05-~1.PPT
[..]

如您所见,有一个文件具有短文件名和长文件名,而另一个文件没有短文件名但短文件名作为长文件名。现在,我将这两个文件复制到不同的目录中:

C:\test>cp "06-05-29, Testfile.ppt" ../
C:\test>cp "06-05-~1.PPT" ../

复制第二个文件后,令人惊讶的是,第一个文件消失了,第二个文件取了第一个文件的文件名:

C:\>dir /x

[..]
12/18/2015  12:31 PM         1,683,456 06-05-~1.PPT 06-05-29, Testfile.ppt
[..]

这怎么可能?我可以想象 NTFS 在内部使用短文件名进行复制,但是,即使两个文件的短文件名也不相同;另外,它如何接管文件名?

对该现象的任何假设/建议/答案表示赞赏。

谢谢汤米

4

1 回答 1

0

您的 cp 程序很有可能对短名称一无所知,并且在复制时没有采取任何措施来保留短名称。在这种情况下,您的第一个 cp 命令(您在其中指定了一个长名称)完全按照您的要求执行,复制一个具有长名称的文件并在该目录中生成一个唯一的短名称。

您的第二个 cp 命令复制了一个与导致原始文件被覆盖的短名称完全相同的文件名。

https://en.wikipedia.org/wiki/8.3_filename

于 2016-07-08T04:49:09.307 回答