在 Ubuntu(以及一般的 Bash)里,alias 本身“不支持”通配符参数展开,也就是说:
例如你写:
alias rm='rm -i'
这个可以用。
但下面这种不行:
alias dl='mv *.txt ~/downloads' # ❌ 不推荐
因为:
*.txt 在定义 alias 时就会被展开(如果当前目录有 txt 文件)$1、$@ 这类参数✅ 正确做法是使用 函数(function)
dltxt() {
mv "$@" ~/downloads
}
然后你可以:
dltxt *.txt
| 写法 | 是否支持 |
|---|---|
alias ll='ls -l' |
✅ |
alias grep='grep --color=auto' |
✅ |
alias g='git *' |
❌ |
alias rm='rm -rf *' |
❌(非常危险) |
alias sudo='sudo '
这个 可以让 alias 后面继续解析 alias(但不是通配)
如果你有具体想实现的通配场景,我可以帮你写成正确的函数版本。