无法读取从cygwin shell创建的文件

时间:2015-08-03 13:27:54

标签: bash vim cygwin

所以,我的(Win7)系统上有fileA.py。我可以打开它并编辑它(使用gVim)就好了。

在bash中,我运行cp fileA.py fileB.py

此时,我无法使用gVim打开fileB.py,而是获得[Permission Denied]错误。

即使我无法在gVim中打开它,我仍然可以cat fileB.py阅读其内容。

然后我运行stat -c "%a %n" *.py,我发现fileA.py和fileB.py都具有相同的(bash)权限。但是一个可以打开,另一个则不能打开。     70 fileA.py     70 fileB.py

为了继续前进,我可以chmod 777 fileB.py。这将允许我在gVim中编辑它。当然,我的权限现在设置为777,这并不理想。

我只能从我的cygwin shell(bash)创建的文件中遇到此问题。如果我转到Windows资源管理器并复制文件,我就没有这样的问题了。

1 个答案:

答案 0 :(得分:0)

您的Cygwin权限可能与您的Windows权限不匹配。与* nix系统一样,您希望确保/etc/passwd/etc/group与您的Windows凭据相匹配。有时你需要重建一个或两个文件。

在基本级别,这会重建文件,但它可能无法完成您所需的一切:

mkpasswd -l [-d] > /etc/passwd
mkgroup  -l [-d] > /etc/group

-l适用于本地系统,-d提取域信息。如果您在域中,则可以提取大量帐户。最好阅读mkpasswdmkgroup的cygwin文档,以帮助缩小范围。

重新生成后,您可能需要调整Cygwin文件的所有权。