我已经读过"rm -rf" equivalent for Windows?的问题了。我还尝试了以下命令:
$ rm app
$ rmdir /s /q app
$ rmdir -s -q app
$ rd /s /q app
还有很多其他的变体。它总是提示我:
C:\ThisDirectoryDoesNotExist\app中的项具有子项,并且未指定Recurse参数。如果您继续,所有的子项目将与该项目一起删除。是否确实要继续?
Y是A是所有N No L No to All S挂起帮助(默认值为"Y"):a
当我选择A
时,它会引发一个错误:
无法删除项C:\ThisDirectoryDoesNotExist\app.git\objects\pack\pack-45e426475eb08ff5042bf88556fbedd3956fba53.idx:您没有足够的访问权限来执行此操作。
我该怎么做呢?
发布于 2020-05-03 10:52:34
只需按建议指定recurse参数:
rm -r app
如果文件夹包含隐藏文件,则添加-Force
参数:
rm -r -fo app
这是以下的简短形式:
Remove-Item -Recurse -Force -Path app
如果您没有适当的访问权限,那么您当然可以不删除它。
背景
rmdir
和rd
是您可以在命令提示符上调用的命令(而不是可执行的)。默认情况下,rm
不可用。例如,如果安装了MinGW环境,那么这三个术语也可能指向可执行文件。但是它们在PowerShell中是不可用的,因为PowerShell使用这些词作为cmdlet Remove-Item
的别名。
PS> 'rm', 'rmdir', 'rd' | Get-Command
CommandType Name Version Source
----------- ---- ------- ------
Alias rm -> Remove-Item
Alias rmdir -> Remove-Item
Alias rd -> Remove-Item
如果您有一些工具可以作为可执行文件使用,您仍然可以在PowerShell中通过指定它们的完整路径来访问它们,例如:
PS> C:\path\to\MinGW\msys\1.0\bin\rm.exe
但是让我们坚持Remove-Item
。由于它是一个cmdlet,它需要某些参数或开关,比如-Recurse
。在此之前,您可以对它们进行缩写,与其他可能的参数相比,它们仍然是明确的。因此,您可以使用:
rm -r
例如,在bash中,您还可以传递以下两个参数:
rm -rf
当您将此命令发送到PowerShell时,它将尝试将-rf
与以rf
开头的参数匹配,该参数不存在。在PowerShell中,必须将每个参数分别传递给cmdlet。要传递-Force
参数,您必须至少编写-fo
,因为还有一个参数-Filter
,因此-f
是不明确的。
总之,要从PowerShell中的bash获取等效的PowerShell,您必须至少编写以下内容:
rm -r -fo
发布于 2020-05-03 10:51:04
试着用这个:-
rmdir /s directory_name
https://stackoverflow.com/questions/61573115
复制相似问题