只列出 bash 中的临时别名

Mas*_*son 4 bash alias

我知道要在给定的 bash 会话中列出所有别名alias -p。有没有办法获取给定 bash 会话中所有临时别名的列表,即不在我的 bash 配置文件中的所有别名?

谢谢!

peo*_*oro 6

没那么简单。bash 中没有“临时”别名的概念,对于 bash,通过采购 .bashrc 执行的任何命令都与您在命令行中键入的任何命令相同。此外,bash 配置文件只能在某些情况下定义一些别名。

您可以将执行 bash 配置文件后设置的别名保存到变量(或文件)中,然后在需要时检查此类变量与当前设置的别名之间的区别:

$ BASE_ALIAS="$(alias | sort)"
$ alias tmp_alias=""
$ unalias ls
$ diff <( echo "$BASE_ALIAS" ) <( alias | sort )
3d2
< alias ls='ls --color=auto'
5a5
> alias tmp_alias=''
Run Code Online (Sandbox Code Playgroud)

diff显示自 声明以来ls已删除别名tmp_alias并添加了别名BASE_ALIAS