在 Windows 7 Cygwin 中使用 mv 时权限被拒绝

Mic*_*ler 7 windows-7 cygwin

我在 Windows 域登录环境中的 Windows 7 上安装了 Cygwin。我可以毫无问题地运行大多数典型命令,但我一生都不能使用“mv”命令来移动或重命名文件,无论文件或目录如何。

我可以毫无问题地复制和创建文件。

??[12:27:57]?[mbutl2@MYHOSTNAME]
???> tmp $ >> pwd
/tmp
??[12:27:58]?[mbutl2@MYHOSTNAME]
???> tmp $ >> touch test.txt
??[12:28:02]?[mbutl2@MYHOSTNAME]
???> tmp $ >> mv test.txt hello
-bash: /usr/bin/mv: Permission denied
Run Code Online (Sandbox Code Playgroud)

我已经尝试以管理员身份运行 Cygwin 终端,问题是一样的。

我对解决方法持开放态度,例如尝试使用另一个 exe 来移动文件并将 mv 命令重定向到它。移动文件在 Windows 命令提示符下工作。

更新:看来我的笔记本电脑上可能存在安全限制,阻止通过名称或启发式访问/复制/执行“mv.exe”程序。仍然愿意接受替代上述 mv 命令的变通方法。

更新 2: Windows 命令行中的屏幕截图以及我在 Windows 中打开 mv.exe 时的屏幕截图。

窗口命令提示符

在此处输入图片说明

更新 3:file命令输出:

??[12:36:09]?[mbutl2@MYHOSTNAME]
???> ~ $ >> file /usr/bin/mv
/usr/bin/mv: writable, executable, regular file, no read permission
??[12:36:15]?[mbutl2@MYHOSTNAME]
???> ~ $ >> chmod 777 /usr/bin/mv
chmod: changing permissions of `/usr/bin/mv': Permission denied
??[?]?[12:36:29]?[mbutl2@MYHOSTNAME]
???> ~ $ >> mv
-bash: /usr/bin/mv: Permission denied
??[?]?[12:36:35]?[mbutl2@MYHOSTNAME]
???> ~ $ >>
Run Code Online (Sandbox Code Playgroud)

ldd 还报告权限被拒绝。

std*_*err 6

  • 查看文件是否已被 Windows 阻止。

    检查properties文件的 ,可能会有提示说This file came from another computer and might be blocked to help protect this computer要检查和取消阻止文件,请按照下列步骤操作: 右键单击​​被阻止的文件,然后单击Properties。在“常规”选项卡中,Unblock如果该选项可用,请单击。

  • 检查您的防病毒软件是否阻止了该文件。

    您可以通过暂时禁用某个文件,然后尝试打开该文件来检查您的防病毒软件是否阻止了该文件。


更新:

  1. 右键单击文件或文件夹,然后单击Properties
  2. 单击Security选项卡。
  3. 在组或用户名下单击您的姓名以查看您拥有的权限。
  4. 单击编辑,然后选中所需权限的复选框,然后单击确定。

结果:

在此处输入图片说明


更新2

尝试这个:

  • 右击,选择Properties
  • 单击Security选项卡。
  • 单击Advanced
  • 单击Owner选项卡。
  • 将所有者更改为您自己。
  • 单击Edit
  • 检查Replace owner on subcontainers and objects
  • 单击OK


Mic*_*ler 2

解决方法是重新下载 Cygwin 的 mv.exe 实用程序,将其保存为不同的名称,例如 mvvv.exe(在实际下载之前,因为我无权重命名 mv.exe)。然后,我设置了一个符号链接将 mv 指向 mvvv.exe,这样我就可以正常使用它了。