mkdir和mkdir -p之间的区别?

时间:2012-10-22 19:22:17

标签: powershell command-line

我一直在关注学习如何在PowerShell中使用命令行界面的Learn Code the Hard Way的教程。在this文章中,它告诉我使用命令mkdir -p i\like\icecream。在底部,它解释“即使所有目录都不存在,”mkdir -p也会创建一个完整的路径。“

我很困惑,因为没有mkdir i\like\icecream参数的-p仍然做同样的事情。我已经尝试并完成了诸如创建“one”目录,然后使用mkdir创建“one \ two \ three”之类的东西,它将自动创建一个两个目录,以便放入三个.TowerShell会自动假设-p或类似的情况?我对这个论点的作用感到茫然。

2 个答案:

答案 0 :(得分:14)

即使您没有完全提供,PowerShell也会尽力确定您的意思。因此,如果您使用-p参数,则实际上使用的是-path

对于mkdir函数,-path参数告诉函数创建的路径。如果没有提供显式参数,-path默认情况下也是函数的第一个参数。因此,使用-p-path)和不使用-p调用函数与函数相关的内容完全相同。

有关更多信息,请在shell类型中:

Get-Help mkdir

我还要澄清一下,当你调用mkdir时,你真正在做的是调用New-Item cmdlet并将-ItemType参数指定为Directory。这就是您在运行该命令时看到New-Item帮助的原因。如果您想查看mkdir函数的实际代码以了解它是如何执行此操作的,请执行以下操作:

(get-command mkdir).ScriptBlock

答案 1 :(得分:0)

如果我们使用创建目录,

  • mkdir,如果目录已经存在,则mkdir会引发异常,因此我们需要检查 在通过相同路径创建目录之前

  • mkdirp,mkdirp始终自动检查目录是否存在。 指定的路径,因此无需执行任何检查。