我试着做了一个alias ls -a = ls -A
,结果是:
bash: alias: `ls -a': invalid alias name
我想要ls -a
没有.
和..
。我怎么能拿到呢?
发布于 2019-02-21 12:34:20
你不能那样用化名。别名是单个名称,调用时不带任何参数(所有参数都直接传递给别名命令,无需修改)。
为了解决您所面临的问题,我的建议是使用一个函数,然后将它别名为ls
,如下所示:
_ls() {
if [[ "$1" == "-a" ]]; then
shift
ls -A "$@"
else
ls "$@"
fi
}
alias ls=_ls
请注意,只有ls -a
才会受到影响(-a
需要在第一个位置单独使用),因此您仍然可以通过将它放在其他位置或将其与其他选项一起收集来访问“标准”-a
:
ls -a # modified '-a'
ls -a -l /tmp # modified '-a'
ls -al # not modified
ls -l -a /tmp # not modified
https://unix.stackexchange.com/questions/502059
复制相似问题