别名 ll 代表什么命令?

别名 ll 代表什么命令?

有人能告诉我这个别名ll是哪个终端命令的吗?我在网上找到的都是很多人说它是ls -lls -la或 的别名ls -ltr。但这完全是错的。结果看起来不一样。有没有办法找到ll并查看它的语法?

答案1

您可以使用aliastype命令来检查特定别名的含义:

$ 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=autols仅当标准输出连接到终端时才会发出颜色代码。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/

相关内容