温馨提示×

ubuntu aliases支持通配吗

小樊
48
2026-09-08 11:23:22
栏目: 智能运维

在 Ubuntu(以及一般的 Bash)里,alias 本身“不支持”通配符参数展开,也就是说:

1. alias 不支持带参数的通配

例如你写:

alias rm='rm -i'

这个可以用。

但下面这种不行:

alias dl='mv *.txt ~/downloads'   # ❌ 不推荐

因为:

  • *.txt 在定义 alias 时就会被展开(如果当前目录有 txt 文件)
  • alias 不会在每次执行时重新解析参数
  • alias 本质上是“文本替换”,不支持 $1、$@ 这类参数

2. 如果你想要“带通配 / 参数”的功能

✅ 正确做法是使用 函数(function)

dltxt() {
    mv "$@" ~/downloads
}

然后你可以:

dltxt *.txt

3. 常见误区

写法 是否支持
alias ll='ls -l' ✅
alias grep='grep --color=auto' ✅
alias g='git *' ❌
alias rm='rm -rf *' ❌(非常危险)

4. 特殊情况:命令结尾加空格

alias sudo='sudo '

这个 可以让 alias 后面继续解析 alias(但不是通配)


总结

  • ❌ alias 不支持通配符参数
  • ✅ 需要通配 / 参数 → 用 shell function
  • ✅ alias 只适合“固定命令前缀”

如果你有具体想实现的通配场景,我可以帮你写成正确的函数版本。

0 踩