[20240827]linux下如何规避alias的命令.txt
--//以前我定义的别名:
$ alias zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
$ zzdate
trunc(sysdate)+17/24+08/1440+20/86400 == 2024/08/27 17:08:20
$ which zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
/bin/date
$ which -a zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
/bin/date
/usr/bin/date
/usr/local/bin/zzdate
/usr/local/bin/zzdate
/usr/local/bin/zzdate
--//注:使用tmux导致的情况,环境变量在重新登录时重复了.
--//实际上后来做个一些修改,写成脚本放在/usr/local/bin目录下,主要加入timestamp部分,alias很难写。
# cat /usr/local/bin/zzdate
#! /bin/bash
/bin/date +"trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T === %Y-%m-%d %T== \"timestamp'%Y-%m-%d %T'\""
--//如果要绕过alias,执行真正的程序,如何执行呢?
--//方法1,选择全路径:
$ /usr/local/bin/zzdate
trunc(sysdate)+17/24+19/1440+38/86400 == 2024/08/27 17:19:38 === 2024-08-27 17:19:38== "timestamp'2024-08-27 17:19:38'"
--//方法2,使用反斜线\:
$ \zzdate
trunc(sysdate)+17/24+19/1440+41/86400 == 2024/08/27 17:19:41 === 2024-08-27 17:19:41== "timestamp'2024-08-27 17:19:41'"
--//在.bash_profile最后加入,避免PATH定义重复.
export PATH=$(echo $PATH | tr ":" "\n" | sort| uniq | xargs | tr ' ' ':')
$ which -a zzdate
alias zzdate='date +'\''trunc(sysdate)+%H/24+%M/1440+%S/86400 == %Y/%m/%d %T'\'''
/bin/date
/usr/bin/date
/usr/local/bin/zzdate
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-3026530/ ,如需转载,请注明出处,否则将追究法律责任。