Como usar aliases

Um alias é um nome alternativo ou um nome abreviado para um cmdlet ou para um elemento de comando, como uma função, um script, um arquivo ou um arquivo executável. Você pode executar o comando usando o alias em vez do nome do executável.

Gerenciando aliases de comando

O PowerShell fornece cmdlets para gerenciar aliases de comando.

Get-Command -Noun Alias
CommandType Name         Version Source
----------- ----         ------- ------
Cmdlet      Export-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Get-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Import-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      New-Alias    7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Remove-Alias 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet      Set-Alias    7.0.0.0 Microsoft.PowerShell.Utility

Para obter mais informações, consulte about_Aliases.

Use o cmdlet Get-Alias para listar os aliases disponíveis em seu ambiente. Para listar os aliases de um cmdlet, use o parâmetro Definition e especifique o nome executável.

Get-Alias -Definition Get-ChildItem
CommandType     Name
-----------     ----
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

Para obter a definição de um alias, use o parâmetro Name.

Get-Alias -Name gci
CommandType     Name
-----------     ----
Alias           gci -> Get-ChildItem

Aliases de compatibilidade no Windows

O PowerShell tem vários aliases que permitem que usuários do UNIX e cmd.exe usem comandos conhecidos no Windows. A seguinte tabela mostra comandos comuns, o cmdlet do PowerShell relacionado e o alias do PowerShell:

comando cmd.exe Comando UNIX Cmdlet do PowerShell Alias do PowerShell
cd, chdir cd Set-Location sl, cd, chdir
cls clear Clear-Host cls clear
copy cp Copy-Item cpi, cp, copy
del, erase, rd, rmdir rm Remove-Item ri, del, erase, rd, rm, rmdir
dir ls Get-ChildItem gci, dir, ls
echo echo Write-Output write echo
md mkdir New-Item ni
move mv Move-Item mi, move, mi
popd popd Pop-Location popd
pwd Get-Location gl, pwd
pushd pushd Push-Location pushd
ren mv Rename-Item rni, ren
tipo cat Get-Content gc, cat, type

Observação

Os aliases nesta tabela são específicos do Windows. Alguns aliases não estão disponíveis em outras plataformas. Isso é para permitir que o comando nativo funcione em uma sessão do PowerShell. Por exemplo, ls não é definido como um alias do PowerShell no macOS ou Linux para que o comando nativo seja executado em vez de Get-ChildItem.

Criando nomes alternativos para comandos com parâmetros

Você pode atribuir um alias a um cmdlet, script, função ou arquivo executável. Diferente de alguns shells do Unix, você não pode atribuir um alias a um comando com parâmetros. Por exemplo, você pode atribuir um alias ao cmdlet Get-Eventlog, mas não pode atribuir um alias ao comando Get-Eventlog -LogName System. Você precisa criar uma função que contenha o comando com parâmetros.

Para obter mais informações, consulte about_Aliases.

Aliases de parâmetro e nomes abreviados

O PowerShell também fornece maneiras de criar nomes abreviados para parâmetros. Os aliases de parâmetro são definidos usando o atributo Alias quando você declara o parâmetro. Eles não podem ser definidos usando os cmdlets *-Alias.

Para obter mais informações, consulte a documentação do Atributo de alias.

Além dos aliases de parâmetro, o PowerShell permite que você especifique o nome do parâmetro usando o menor número de caracteres necessários para identificar exclusivamente o parâmetro. Por exemplo, o cmdlet Get-ChildItem tem os parâmetros Recurse e ReadOnly. Para identificar exclusivamente o parâmetro Recurse, você só precisa fornecer -rec. Se você combinar isso com o alias de comando, Get-ChildItem -Recurse poderá ser reduzido para dir -rec.

Não usar aliases em scripts

Os aliases são um recurso conveniente para ser usado interativamente no shell. Você sempre deve usar os nomes completos de comandos e parâmetros em seus scripts.

  • Aliases podem ser excluídos ou redefinidos em um script de perfil
  • Qualquer alias que você definir pode não estar disponível para o usuário de seus scripts
  • Aliases tornam seu código mais difícil de ler e manter