温馨提示×

linux aliases支持通配吗

小樊
44
2026-10-11 01:38:34
栏目: 智能运维

在 Linux 的 shell alias(别名)本身是不支持参数和通配(wildcard)展开的。也就是说:

1. alias 不支持通配符 / 参数

例如下面这样是不行的:

alias rm='rm -i *'

这个 alias 只会把 rm 变成 rm -i *,* 不会被当成“你后面输入的参数”,而是字面量。

也不能这样:

alias grep='grep --color=auto $1'   # ❌ 不支持 $1

2. alias 只是“文本替换”

alias 的工作方式是:
命令开头匹配到 alias → 直接替换文本 → 再执行

它:

  • ✅ 可以固定参数
  • ❌ 不能处理变量
  • ❌ 不能使用通配符动态匹配

3. 正确做法:用函数(function)

如果你想“带参数 / 通配”,用 shell 函数:

rm() {
    command rm -i "$@"
}

或者带通配:

clean() {
    rm -i "$@"
}

调用时:

clean *.log

4. 常见可用 alias(✅ 合法)

alias ll='ls -lh'
alias grep='grep --color=auto'
alias rm='rm -i'

5. 总结

功能 alias function
固定参数 ✅ ✅
使用 $1 $@ ❌ ✅
通配符动态处理 ❌ ✅

如果你愿意,可以告诉我你想用 alias 实现什么具体命令,我可以直接帮你改成正确写法。

0 踩