web-dev-qa-db-ja.com

lsとlaの違いは何ですか?なぜ同じ出力を出すのですか?

ディレクトリの内容を表示するためにlaの代わりに誤ってlsと入力すると、ls...とまったく同じ出力が生成されます。

どうしてこれなの?まったく同じことを行う2つのコマンドを使用するのは意味がありません。

19
TellMeWhy

laは、Ubuntuのls -Aファイルで定義されている~/.bashrcのエイリアスです。

非表示のファイルまたはディレクトリがない場合にのみ、同じ出力が表示されます。

ls -Aは非表示のファイルとディレクトリを示します。

34
Pilot6

laはUbuntuのエイリアスとして定義されています~/.bashrcファイルと他のいくつかのファイル。 lals -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'
14
Videonauth

疑わしい場合は、type la


バッシュ出力:

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
8
user2394284

lsはコマンド、lおよびlaは、コマンドlsを使用する可能性が最も高いエイリアスです。コマンドaliasを実行すると、システム上のすべてのエイリアスを見つけることができます。

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

これは、パターンl = ...またはla = ....に一致するすべてのエイリアスを返します。

6

すべてのディレクトリで同じ出力を生成するわけではありません。

touch .whateverでドットファイルを作成し、lalsの両方を発行します。

4
user4556274

laは、他の回答で述べられているように、ls -Aのエイリアスです。そのため、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に直接印刷しない場合に色がオフになることを意味します。

2
Mark Gardner