linux - 确定定义 UNIX 别名的位置

标签 linux bash shell unix

是否有(某种程度上)可靠的方法来获取命令的“来源”,即使该命令是别名?例如,如果我将其放入我的 .bash_profile

alias lsa="ls -A"

而且我想从命令行了解 lsa 的定义位置,这可能吗?我知道 which 命令,但似乎并没有这样做。

最佳答案

正如 Carl 在他的评论中指出的,type 是找出名称定义方式的正确方法。

mini:~ michael$ alias foo='echo bar'
mini:~ michael$ biz() { echo bar; }
mini:~ michael$ type foo
foo is aliased to `echo bar'
mini:~ michael$ type biz
biz is a function
biz () 
{ 
    echo bar
}
mini:~ michael$ type [[
[[ is a shell keyword
mini:~ michael$ type printf
printf is a shell builtin
mini:~ michael$ type $(type -P printf)
/usr/bin/printf is /usr/bin/printf

关于linux - 确定定义 UNIX 别名的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11660962/

相关文章:

linux - linux 文件搜索中的递归 - Bash 脚本

python - 同时运行同一程序的多个版本

linux - 从文件列表变量中删除所有非目录

linux - perl 在退出时挂起(关闭文件句柄后)

c++ - c++中回调成员函数

linux - linux/systemd 中是否有可编程的 automount/autofs Hook ?

linux - 通过 linux 命令检查主内存使用情况

linux - bash 管道处理

shell - 将 URL 地址添加到 SAPUI5 中的 View

linux - 条件循环中的多个读取命令是否会在 shell 脚本中产生问题