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
是一个命令, l
和la
最有可能是使用命令ls
别名。 如果运行命令alias
,则可以在系统上找到所有别名。
$ alias | grep -E ' l=| la='
这将返回与模式l = …或la = ….匹配的所有别名。
它们不会在所有目录中生成相同的输出。
创建一个touch .whatever
,然后发出la
和ls
。
la
是ls -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时将关闭颜色。