Windows PowerShell的“rm-rf”等效项?

Windows PowerShell的“rm-rf”等效项?,windows,powershell,Windows,Powershell,我已经看过这个问题了。我还尝试了以下命令: $ rm app $ rmdir /s /q app $ rmdir -s -q app $ rd /s /q app 还有许多其他的变化。它总是提示我: 位于C:\ThisDirectoryDoesNotExist\app\的项具有子项,并且未指定Recurse参数。如果你继续, 所有子项都将随项目一起删除。您确定要继续吗 [Y] 是[A]对所有[N]否[L]对所有[S]否挂起[?]帮助默认为Y:A 当我选择A时,它会抛出一个错误: rm:无法删除

我已经看过这个问题了。我还尝试了以下命令:

$ rm app
$ rmdir /s /q app
$ rmdir -s -q app
$ rd /s /q app
还有许多其他的变化。它总是提示我:

位于C:\ThisDirectoryDoesNotExist\app\的项具有子项,并且未指定Recurse参数。如果你继续, 所有子项都将随项目一起删除。您确定要继续吗

[Y] 是[A]对所有[N]否[L]对所有[S]否挂起[?]帮助默认为Y:A

当我选择A时,它会抛出一个错误:

rm:无法删除项目 C:\ThisDirectoryDoesNotExist\app.git\objects\pack\pack-45e426475eb08ff5042bf88556fbedd3956fba53.idx:您没有 有足够的访问权限来执行此操作

如何操作?

尝试使用以下方法:-

rmdir /s directory_name

只需按照建议指定recurse参数:

rm -r app
如果文件夹包含隐藏文件,请添加-Force参数:

rm -r -fo app
以下简称:

Remove-Item -Recurse -Force -Path app
如果您没有适当的访问权限,那么您当然不能删除它

背景

rmdir和rd是您可以在命令提示符下调用的非可执行命令。默认情况下,rm不可用。例如,如果您安装了MinGW环境,这三个术语也可能指向可执行文件。但它们在PowerShell中不可用,因为PowerShell将这些单词用作cmdlet Remove项的别名:

PS>'rm'、'rmdir'、'rd'| Get命令 CommandType名称版本源 ------ - ---- --- 别名rm->删除项目 别名rmdir->删除项目 别名rd->删除项目 如果某些工具作为可执行文件提供,您仍然可以通过指定指向它们的完整路径在PowerShell中访问它们,如:

PS>C:\path\to\MinGW\msys\1.0\bin\rm.exe 但让我们坚持删除该项。由于它是cmdlet,因此需要某些参数或开关,如-Recurse。您可以将它们缩写,直到与其他可能的参数相比,它们仍然是明确的。因此,您可以使用:

rm -r
例如,在bash中,您也可以像这样传递两个参数:

rm -rf
当您将此命令发送到PowerShell时,它将尝试将-rf与以rf开头的参数匹配,该参数不存在。在PowerShell中,必须将每个参数分别传递给cmdlet。要传递-Force参数,必须至少写入-fo,因为还有一个参数过滤器,因此-f是不明确的

总之,要从PowerShell中的bash获得等效的rm-rf,您必须至少编写以下代码:

rm -r -fo

rd/q/s代表CMD,但看起来您正在运行PowerShell。没有什么可以阻止您使用CMD。这个问题与你使用的终端完全无关。这是一个shell问题。@ErykSun我在删除项时出错:找不到接受参数“/s”的位置参数。。我也可以使用git bash轻松删除文件夹。但这并不能回答我的问题。当然,这是有关系的,因为程序员很快就会默认新的Windows终端预览。它有潜力。试一试&你会看到的。我只需要使用新的终端删除文件夹。我不明白为什么这么难理解。终端不是外壳。你似乎把这两个人搞混了。CMD、PowerShell、bash等都可以在经典的conhost.exe终端/控制台中正常工作,如果Windows控制台应用程序没有生成已连接的终端,则会分配该终端/控制台。控制台或终端提供用于文本输入和输出的UI,在API函数和IOCTL或标准转义序列方面对程序的UI支持程度各不相同。同样,您使用的是PowerShell,其中rd是remove item的别名,不支持与CMD的rd命令相同的语法。打开cmdshell以在您喜欢的任何终端或控制台中运行rd/q/s。如果从资源管理器中运行cmd.exe,将获得经典的conhost.exe终端。在Windows终端中,您可以在新选项卡中运行CMD,或者只从PowerShell中运行CMD.exe。@ErykSun-Ahh更令人困惑的是,无论如何,它得到了一个答案:它给了我错误删除项:找不到接受的位置参数argument@deadcoder0904我在解决方案中添加了关于隐藏文件的详细信息,这可能存在于您的目录中,因为它似乎是一个git repo。第二个运行得非常好的rm-r-fo应用程序。谢谢你的回答