You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中替换ls默认映射的Get-ChildItem为eza命令?

解决PowerShell 7替换ls为eza的问题

问题1:New-Alias提示别名已存在

ls是PowerShell内置的只读别名,直接用New-Alias创建会触发报错。先强制删除原有只读别名,再创建新别名即可:

# 删除内置的ls只读别名
Remove-Alias -Name ls -Force
# 创建指向eza的新ls别名
New-Alias -Name ls -Value eza.exe

问题2:定义ls函数仍调用Get-ChildItem

你之前的函数参数写法存在问题,再加上内置别名未删除时PowerShell会优先调用别名,导致函数不生效。以下是两种修正后的函数写法:

写法1:支持传递所有参数(灵活适配eza额外参数)

function ls {
    eza.exe -lab --group-directories-first --git --icons $args
}

这种写法可以让你直接传递eza的其他参数,比如ls --tree也能正常执行。

写法2:指定路径参数(带默认值)

function ls {
    param(
        [string]$Path = "."  # 默认使用当前目录
    )
    eza.exe -lab --group-directories-first --git --icons $Path
}

让修改永久生效

如果希望每次打开PowerShell都自动生效,把删除别名+创建函数/别名的命令放到PowerShell配置文件中:

  1. 打开配置文件:notepad $PROFILE
  2. 粘贴对应命令并保存,重启PowerShell即可。

内容的提问来源于stack exchange,提问作者Madoka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:12:42