Edited at

PowerShellで"rm -rf"的なコマンドのエイリアスを作った

More than 1 year has passed since last update.


(An English version is available here.)

Bashでは、rm -rfでファイルやディレクトリを削除します。PowerShellの場合でもこれぐらいのタイプ数で同様の処理をしたいので、rmrfというエイリアス(正確には関数)を作りました。


経緯

削除したいファイルやディレクトリをtargetとします。このとき、PowerShellでは、次のコマンドでtargetを削除できます。

Remove-Item -Recurse -Force target

Tab補完を使ったとしても、これでは長いので、できるだけ短くすると、

rm -r -fo target

となります。しかし、これでもまだrm -r -form -rfに比べて若干タイプしにくいです。

いっそのことエイリアスを作ることにしました。


作り方

PowerShellのprofileを作成する必要があります。profileの作成方法については、次の記事に解説がありますので、参考にしてください。

PowerShellの$profileに設定しておくと便利な定義 - Qiita

次のような内容のprofileを作成します。


Microsoft.PowerShell_profile.ps1

function rmrf {

<#
.DESCRIPTION
Deletes the specified file or directory.
.PARAMETER target
Target file or directory to be deleted.
.NOTES
This is an equivalent command of "rm -rf" in Unix-like systems.
#>

Param(
[Parameter(Mandatory=$true)]
[string]$Target
)
Remove-Item -Recurse -Force $Target
}

Gistはこちら


結果

rmrf target

これだけで、targetを削除できるようになりました。