Powershell 中 rm -rf 的等价物是什么?

sen*_*hin 8 powershell

众所周知,在 *nix 系统上,递归地rm -rf some_directory删除some_directory其下的所有文件,而无需确认。

这个命令在 Powershell 中的等价物是什么?

请注意,此处给出的 cmd答案(使用rmdir等)在 Powershell 中不起作用。尽管 Powershellrmdir为 to做了别名Remove-Item(大概有一些开关;不确定是哪个),但它并没有将cmd 样式的开关作为别名,如/s.

Tim*_*ill 10

这可能就是你要找的。似乎对搜索引擎稍加努力就会得出相同的结论。

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

或者,作为速记:

rm <directory-path> -r -f
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Remove-Item 帮助页面

  • 嗯,是的,我确实尝试过搜索,但是像“rm”和“rf”这样的两个字符的字符串并不能完全产生最好的搜索结果。不管怎样,更多的搜索出现了[这个答案](http://stackoverflow.com/a/1752751/1535629) - 你是否知道“-Recurse”参数是否是必要的,如果是的话,为什么? (2认同)
  • 其实两者都可能是最好的。`-Force` 开关实际上处理隐藏文件等,而 `-Recurse` 处理子文件夹。 (2认同)
  • -f is 选项不明确(可能在较新的操作系统上),黑白 -Filter 和 -Force。 (2认同)

Mak*_*toE 6

Powershell 中最接近的命令是:

try {
    Remove-Item -Recurse -ErrorAction:Stop C:\some_directory
} catch [System.Management.Automation.ItemNotFoundException] {}
Run Code Online (Sandbox Code Playgroud)

rm -rf在 Unix 中意味着删除文件,也意味着:

-r, -R, --recursive   remove directories and their contents recursively
-f, --force           ignore nonexistent files and arguments, never prompt
Run Code Online (Sandbox Code Playgroud)

Remove-Item -Force不等于rm -f.

-Force强制 cmdlet 删除无法更改的项目,例如隐藏或只读文件或只读别名或变量。

为了证明这-Force不会“忽略不存在的文件和参数,从不提示”,如果我这样做rm -r -Force thisDirectoryDoesntExist,则会导致此错误:

rm : Cannot find path 'C:\thisDirectoryDoesntExist' because it does not exist.
Run Code Online (Sandbox Code Playgroud)

一行是rm -r -ErrorAction:SilentlyContinue,但这会丢弃不是不存在错误的错误。