diff:文本文件权限被拒绝

时间:2016-04-09 12:13:40

标签: bash unix text-files diff

我在Windows上使用diff来比较两个文本文件。它成功地用于小文件,但是,当我开始将2GB文件与另一个2GB文件进行比较时,它向我显示:

diff: C:/inetpub/wwwroot/webclient/database_sequences/est_mouse_2.txt: Permission denied

我的代码:

$OldDatabaseFile = "est_mouse_1";
$NewDatabaseFile = "est_mouse_2";
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt >  $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'");

est_mouse_1.txtest_mouse_2.txt由我创建,我检查文件权限和文件夹权限,它是完全控制的。我比较的所有其他文本文件都在同一个文件夹中,并且它们已成功进行比较。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您正在使用cygwin进行此操作,Cygwin的堆是可扩展的。但是,它确实以固定大小开始,并且尝试扩展它可能会遇到以前由Windows分配的内存。 堆内存可以分配到进程虚拟内存(VM)中最大可用空闲块的大小。在64位系统上,这导致从该可执行文件启动的进程有4GB VM。我认为为什么你不能比较两个2GB文件,我同意这个错误很奇怪但是解释说你对内存的访问是有限的。有关详细信息,请参阅cygwin user guide