“在Windows使用mv命令时提示 Permission denied”的版本间的差异
(创建页面,内容为“返回 Orange233 == 在Windows使用mv命令时提示“Permission denied” == === 类似的问题 === Crywin、MSYS、Git Bash中使用“m…”) |
(→在Windows使用mv命令时提示“Permission denied”) |
||
第29行: | 第29行: | ||
* 打开<code>资源监视器</code>(你可以在<code>任务管理器</code>的第二个标签页(在<code>Windows10</code>中叫<code>性能</code>(<code>Windows7</code>及更低版本中好像是叫<code>资源</code>)然后往下看就能找到)),切换到<code>CPU</code>标签页,在<code>关联的句柄</code>中搜索目标目录(注意最好不要带分隔符,只要一个目录名,不然可能会出现<code>/</code>和<code>\</code>不匹配的情况)。如果搜到的<code>句柄名称</code>确实有目标目录,那么就尝试关闭相关进程或者直接杀死它们。 | * 打开<code>资源监视器</code>(你可以在<code>任务管理器</code>的第二个标签页(在<code>Windows10</code>中叫<code>性能</code>(<code>Windows7</code>及更低版本中好像是叫<code>资源</code>)然后往下看就能找到)),切换到<code>CPU</code>标签页,在<code>关联的句柄</code>中搜索目标目录(注意最好不要带分隔符,只要一个目录名,不然可能会出现<code>/</code>和<code>\</code>不匹配的情况)。如果搜到的<code>句柄名称</code>确实有目标目录,那么就尝试关闭相关进程或者直接杀死它们。 | ||
+ | |||
+ | === 另外 === | ||
+ | |||
+ | 为了避免出现问题,最后使用<code>find . -wholename "*/.git/objects/pack/*" -exec chmod -w -c {} \;</code>还原了原有的只读权限。 | ||
== 引用 == | == 引用 == | ||
<references/> | <references/> |
2023年1月1日 (日) 06:24的最新版本
在Windows使用mv命令时提示“Permission denied”
类似的问题
Crywin、MSYS、Git Bash中使用“mv”命令时提示“Permission denied”
上下文
我在Git Bash
(使用的环境是`MSYS2`)中尝试移动一个git仓库目录,但是只移动了一部分,并提示Permission denied
。
一开始我以为是git仓库再创建过程中产生了一些特殊权限文件。我就试着先用文件管理器看了一下,发现有部分是只读
状态,我就递归执行取消只读。
但是又突然发现属性执行窗口下的页面存储空间还在不断增长,我想可能有链接,就用停止执行并使用chmod +w -c -R dir
去执行,然后发现在每一个.git/objects/pack/
中都是*.idx
*.pack
,总感觉不对劲。因为,其实是由一部分移动成功的,如果是因为只读,那也不可能另一部分都没有问题。果然执行完了也还是不行。
尝试换用管理员权限启动Git Bash
,也不能执行移动。
我本来都要调用chmod
试试了。
结果查到了一个有用的答案[1]。
解释
通常用Windows
的用户在自己电脑上应该是很少遇到Permission denied
,有也能用管理员权限
解决。
那么什么情况下管理员权限解决不了呢。那很又很可能是管理员——你正在占用目录或目录中的东西。
解决方法
检查文件占用。
- 检查打开的
文件资源管理器
中是否有占用目标目录或目标目录的子目录或文件的。如果有,就关闭它。
- 打开
资源监视器
(你可以在任务管理器
的第二个标签页(在Windows10
中叫性能
(Windows7
及更低版本中好像是叫资源
)然后往下看就能找到)),切换到CPU
标签页,在关联的句柄
中搜索目标目录(注意最好不要带分隔符,只要一个目录名,不然可能会出现/
和\
不匹配的情况)。如果搜到的句柄名称
确实有目标目录,那么就尝试关闭相关进程或者直接杀死它们。
另外
为了避免出现问题,最后使用find . -wholename "*/.git/objects/pack/*" -exec chmod -w -c {} \;
还原了原有的只读权限。