ls和la有什么区别? 为什么他们提供相同的输出?

我意外地输入了la而不是ls来查看目录的内容,它产生与ls完全相同的输出…

为什么是这样? 当然,使用两个完全相同的命令是没有意义的。

la是Ubuntu中~/.bashrc文件中定义的ls -A的别名。

如果没有隐藏文件或目录,它只显示相同的输出。

ls -A显示隐藏的文件和目录。

la被定义为Ubuntus ~/.bashrc文件中的别名以及其他一些文件。 la只是一个ls -A ,你可以在~/.bashrc的下面片段中看到

 # this alias is defined earlier to grant colored output alias ls='ls --color=auto' # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' alias li='ls -lF' 

如有疑问,请type la


Bash输出:

 la is aliased to `ls -la' 

鱼类产量:

 la is a function with definition function la --description 'List contents of directory, including hidden files in directory using long format' ls -lah $argv end 

ls是一个命令, lla最有可能是使用命令ls别名。 如果运行命令alias ,则可以在系统上找到所有别名。

 $ alias | grep -E ' l=| la=' 

这将返回与模式l = …或la = ….匹配的所有别名。

它们不会在所有目录中生成相同的输出。

创建一个touch .whatever ,然后发出lals

lals -A的别名,如其他答案所述。 因此,它不能在shell脚本中使用,而ls可以。

您的计算机有多个别名命令。 可以通过执行alias来获取完整列表。 在我的机器上打印出来:

 alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto' 

--color=auto表示不直接打印到STDOUT时将关闭颜色。