有人能告诉我这个别名ll
是哪个终端命令的吗?我在网上找到的都是很多人说它是ls -l
或ls -la
或 的别名ls -ltr
。但这完全是错的。结果看起来不一样。有没有办法找到ll
并查看它的语法?
答案1
您可以使用alias
或type
命令来检查特定别名的含义:
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
但请注意,别名可能会使用其他别名,因此您可能必须递归检查它,例如在的情况下ll
,您还应该检查ls
它调用的命令:
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
所以ll
实际上意味着:
ls --color=auto -alF
答案2
ll
是您在中定义的别名~/.bashrc
,如果您没有更改它,它就是ls -alF
:
$ grep ll= <~/.bashrc
alias ll='ls -alF'
这三个选项是:
- -a, --all – 不忽略以 开头的条目。
- -l – 使用长列表格式
- -F, --classify – 将指示符(*/=>@| 之一)附加到条目
作为
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
显示,ls
它本身又是的别名ls --color=auto
:
使用
--color=auto
,ls
仅当标准输出连接到终端时才会发出颜色代码。LS_COLORS
环境变量可以更改设置。使用dircolors
命令进行设置。
答案3
您可以查看您的 ~/.bashrc(或您的别名所在的某个文件),或者您可以在 shell 中写入以下一些命令:
command -v ll # "command" is a shell built-in that display information about
# the command. Use the built-in "help command" to see the
# options.
type -p ll # "type" is another built-in that display information about how the
# command would be interpreted
grep -r "alias ll=" ~ # and don't worry about de .file that contains your
# alias. This command search recursively under each
# folder of your home. So it's something rude.
find ~ -maxdepth 1 -type f | xargs grep "alias ll" # Just look in
# the files (not folders) in your home folder
但是为什么使用 find 而不使用 -name ".*" 呢?因为你可以把它放在你的 .bashrc 中
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
由于“ll”是一个别名,因此它不一定只有一个含义(ll='ls -alF --color'),您可以将“ll”设置为另一个命令的别名,例如“rm”。我认为这更像是一种惯例(常见用途的产物)。
但是“ll”可以是存储在 PATH 的任何文件夹中的程序。例如,如果您的主文件夹中有一个名为“bin”的文件夹,请制作一个“ll”脚本,其中包含类似以下内容的内容
#!/bin/bash
ls -lhar
但是,如果您的 PATH 已被更改以添加另一个包含新“ll”命令的文件夹,该怎么办?有关更多有趣的信息,您可以查阅以下相关问题的链接。
答案4
应该是ls -la
。请参阅Linuxize.com:
https://linuxize.com/post/how-to-create-bash-aliases/