我在 Windows 7 上的 Windows 域登录环境中安装了 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
我已经尝试运行 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]
└──> ~ $ >>
ldd
还报告权限被拒绝。
答案1
查看该文件是否已被Windows阻止。
检查
properties
文件的,可能会出现一条提示,提示“This file came from another computer and might be blocked to help protect this computer
要检查并解除文件阻止,请按照以下步骤操作:右键单击被阻止的文件,然后单击Properties
。在常规选项卡中,Unblock
如果该选项可用,请单击。检查您的防病毒软件是否阻止了该文件。
您可以通过暂时禁用文件,然后尝试打开文件来检查防病毒软件是否阻止了该文件。
更新:
- 右键单击文件或文件夹,然后单击
Properties
。 - 单击该
Security
选项卡。 - 在组或用户名下单击您的姓名以查看您拥有的权限。
- 单击“编辑”,然后选中所需权限的复选框,然后单击“确定”。
结果:
更新 2:
尝试这个:
- 右键单击,选择
Properties
。 - 单击该
Security
选项卡。 - 点击
Advanced
。 - 单击该
Owner
选项卡。 - 将所有者更改为您自己。
- 点击
Edit
。 - 查看
Replace owner on subcontainers and objects
。 - 点击
OK
。
答案2
解决方法是重新下载 Cygwin 的 mv.exe 实用程序,将其另存为其他名称,例如 mvvv.exe(在实际下载之前,因为我无权重命名 mv.exe)。然后,我设置了一个符号链接,将 mv 指向 mvvv.exe,以便可以正常使用它。
答案3
如果您的磁盘上的 mv.exe 出现问题,我会尝试:
- 卸载 Cygwin
- 校验
- 确认 mv.exe 及其整个文件夹已被删除
- 重新安装 Cygwin
[编辑]
你说你的防病毒软件是 McAfee,在我看来它是所有防病毒产品中最有问题的产品之一。
我建议禁用 McAfee 中的实时保护,看看问题是否消失。如果问题消失,我个人的建议是卸载 McAfee 并安装其他侵入性较小的防病毒产品。