【发布时间】:2020-05-03 10:42:09
【问题描述】:
我已经阅读了问题"rm -rf" equivalent for Windows?。我还尝试了以下命令:
$ rm app
$ rmdir /s /q app
$ rmdir -s -q app
$ rd /s /q app
和许多其他变体。它总是提示我:
C:\ThisDirectoryDoesNotExist\app\ 中的项有子项,并且未指定 Recurse 参数。如果继续, 所有子项都将与该项目一起被删除。确定要继续吗?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] 帮助(默认为“Y”):A
当我选择A时,它会抛出一个错误:
rm : 无法移除项目 C:\ThisDirectoryDoesNotExist\app.git\objects\pack\pack-45e426475eb08ff5042bf88556fbedd3956fba53.idx:你没有 足够的访问权限来执行此操作。
我该怎么做?
【问题讨论】:
-
rd /q /s用于 CMD,但看起来您正在运行 PowerShell。没有什么能阻止您改用 CMD。而且这个问题与您使用的终端完全无关。这是一个shell问题。 -
@ErykSun 我收到了这个错误
Remove-Item : A positional parameter cannot be found that accepts argument '/s'.。我也可以使用 git bash 轻松删除该文件夹。但这并不能回答我的问题。当然,这有关系,因为新的 Windows 终端预览将很快成为程序员的默认设置。它有潜力。试一试,你会看到的。我只需要使用那个新终端删除文件夹。我不明白为什么这么难理解。 -
终端不是shell。你似乎混淆了两者。 CMD、PowerShell、bash 等都可以在经典的 conhost.exe 终端/控制台中正常工作,如果 Windows 控制台应用程序没有在已连接终端的情况下生成它们,则它们会分配该终端/控制台。控制台或终端为文本输入和输出提供 UI,在 API 函数和 IOCTL 或标准转义序列方面为程序提供不同程度的 UI 支持。
-
再次,您使用的是 PowerShell,其中
rd是remove-item的别名,并且不支持与 CMD 的rd命令相同的语法。打开 CMD shell 以运行rd /q /s-- 在您喜欢的任何终端或控制台中。如果您从资源管理器运行 cmd.exe,您将获得经典的 conhost.exe 终端。在 Windows 终端中,您可以在新选项卡中运行 CMD,或者只从 PowerShell 运行 cmd.exe。 -
@ErykSun 啊,这更令人困惑,反正得到了答案:)
标签: windows powershell