【发布时间】:2012-05-13 16:57:32
【问题描述】:
rm 是删除项目,但-rf 的参数是做什么或表示什么?
每当我输入 help -rf 时,它都会在 powershell 中打印完整的可用命令列表。如果在 powershell 中键入 rm -rf 会发生什么?从阅读中我收集到它会删除驱动器上的所有内容?我不确定?
另外,rm -rf 和 rm -rf / 一样吗
【问题讨论】:
标签: powershell command cmd rm
rm 是删除项目,但-rf 的参数是做什么或表示什么?
每当我输入 help -rf 时,它都会在 powershell 中打印完整的可用命令列表。如果在 powershell 中键入 rm -rf 会发生什么?从阅读中我收集到它会删除驱动器上的所有内容?我不确定?
另外,rm -rf 和 rm -rf / 一样吗
【问题讨论】:
标签: powershell command cmd rm
PowerShell 不是 UNIX。 rm -rf 是 UNIX shell 代码,而不是 PowerShell 脚本。
rm(Remove-Item 的缩写)on PowerShell 的文档。rm on UNIX 的文档。看到区别了吗?
在 UNIX 上,单独的 rm -rf 是无效的。你通过rm 告诉它要做什么 remove 使用属性 r 表示 recursive 和 f 表示 force,但是你没有告诉它应该采取什么行动。 rm -rf /path/to/delete/ 表示 rm (remove) 与目录 @ 上的属性 r (recursive) 和 f (force) 987654335@及其子目录。
PowerShell 上正确的等效命令是:
rm C:\path\to\delete -r -fo
请注意,PowerShell 中的-f 对于-Filter 和-Force 是不明确的,因此需要使用-fo。
【讨论】:
rm \ -r -f。您可以在 PowerShell 中缩写参数名称,但不能堆叠它们。
rm <path> -r -f,但路径不存在,则会引发异常。在 unix 中,如果在不存在的路径上运行 rm -rf <path>,则命令成功退出。这两个命令不等价。
Remove-Item : Parameter cannot be processed because the parameter name 'f' is ambiguous. Possible matches include: -Filter -Force.但是你可以使用rm C:\path\to\delete -r -fo。
rm path\to\delete -r -fo 时,我收到错误消息:Remove-Item: Cannot remove item path\to\delete: The directory is not empty。 : 'path\to\delete' 我使用的是 PS 版本 7.1.1
你必须使用:
Remove-Item C:\tmp -Recurse -Force
或(短)
rm C:\tmp -Recurse -Force
【讨论】:
这是一个行为类似于rm -rf 的单行代码。它首先检查路径是否存在,然后尝试删除它。
if (Test-Path ./your_path) { rm -r -force ./your_path}
【讨论】: