Powershell命令:rm -rf

BK_*_*BK_ 42 powershell command cmd rm

我做了一些研究,但我仍然不确定它到底做了什么.我知道rm是删除项目,但我在-rf上找不到任何文档.每当我键入help -rf时,它都会在powershell中打印整个可用命令列表.如果在powershell中键入rm -rf会发生什么?从阅读中我已经收集到它将删除驱动器上的所有内容?我不确定?

另外,rm -rf与rm -rf /相同

Mah*_*dsi 58

PowerShell不是UNIX.rm -rf是UNIX shell代码,而不是PowerShell脚本.

看到不同?

在UNIX上,rm -rf单独无效.你告诉它通过做rm删除与属性r递归f,但你没有告诉它什么行动应该来完成.rm -rf /path/to/delete/表示rm(删除)目录及其子目录上的属性r(递归)和f(强制)/path/to/remove/.

PowerShell上正确的等效命令是:

rm C:\path\to\delete -r -fo
Run Code Online (Sandbox Code Playgroud)

需要注意的是-f在PowerShell是暧昧-Filter-Force,因此-fo需要使用.

  • 这个答案是不正确的。如果在PowerShell中执行`rm <path> -r -f`,但该路径不存在,则会引发异常。在UNIX中,如果在不存在的路径上运行rm -rf <path>,则命令成功退出。这两个命令不等效。 (2认同)
  • PowerShell 等效项(不再?)为真。如果你这样做,你会收到一个错误`Remove-Item:参数不能被处理,因为参数名称'f'不明确。可能的匹配项包括: -Filter -Force.` 但是你可以使用 `rm C:\path\to\delete -r -fo`。 (2认同)

Kai*_*nad 27

你必须使用:

Remove-Item C:\tmp -Recurse -Force
Run Code Online (Sandbox Code Playgroud)

或(短)

rm C:\tmp -Recurse -Force
Run Code Online (Sandbox Code Playgroud)


Ami*_*adi 6

这是一条行为类似于 的单行代码rm -rf。它首先检查路径是否存在,然后尝试将其删除。

if (Test-Path ./your_path) { rm -r -force ./your_path}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你,这就是我一直在寻找的正确答案。许多人忘记了 UNIX 的 -f 实际上允许默默地忽略不存在的目录。 (2认同)