尝试将默认的PowerShell Get-ChildItem
命令(在PowerShell 7中默认Map为ls
)替换为eza,但我似乎找不到任何关于如何执行此操作的信息
- 使用
New-Alias
导致 * 不允许使用别名 *
Line |
15 | New-Alias -Name ls -Value eza.exe # Eza map to ls
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The alias is not allowed, because an alias with the name 'ls' already exists.
- 使用下面的函数不起作用,它只是再次调用
Get-ChildItem
(虽然如果我,例如,切换ls
到la
它确实工作,所以我不认为函数本身是不正确的)
function ls {
[string]$Path # path for ls
eza.exe -lab --group-directories-first --git --icons $Path
}
1条答案
按热度按时间ghhaqwfi1#
您需要使用
-Force
来覆盖现有别名:或者更简单,使用
Set-Alias
或使用alias:
修饰符赋值:至于定义具有相同名称的函数,请注意,PowerShell中的别名位于命令优先级的顶部,这意味着具有相同名称的函数不会覆盖它们。
然而,你可以用不同的方式命名你的函数,并用
Alias
attribute装饰它,那么你就很好了(注意,你也缺少了一个param
block):