web-dev-qa-db-fra.com

Quelle est la différence entre ls et la? Pourquoi donnent-ils le même résultat?

J'ai entré laaccidentellement au lieu de lspour afficher le contenu d'un répertoire et le résultat obtenu est exactement le même que lsname __...

Pourquoi est-ce? Cela n’a aucun sens d’avoir deux commandes qui font exactement la même chose.

19
TellMeWhy

la est un alias de ls -A défini dans le fichier ~/.bashrc dans Ubuntu.

Il n'affiche que le même résultat si vous n'avez aucun fichier ou répertoire caché.

ls -A affiche les fichiers et les répertoires cachés.

34
Pilot6

la est défini comme un alias dans le fichier ~/.bashrc de Ubuntus avec quelques autres. la est simplement un ls -A comme vous pouvez le voir dans l'extrait de code suivant du ~/.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

En cas de doute, type la.


Sortie Bash:

la is aliased to `ls -la'

Débit de poisson:

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

lsest une commande, let lasont des alias les plus probables qui utilisent la commande lsname__. Si vous exécutez la commande aliasname__, vous pouvez trouver tous les alias sur votre système.

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

Cela renverra tous les alias correspondant au modèle l = ... ou la = ....

6
Arijit Chatterjee

Ils ne produisent pas la même sortie dans tous les répertoires.

Créez un fichier de points avec touch .whatever, puis lancez la et ls.

4
user4556274

la est un alias pour ls -A, comme indiqué par d'autres réponses. En tant que tel, il ne peut pas être utilisé dans les scripts Shell, alors que ls le peut.

Votre ordinateur dispose de plusieurs commandes avec alias. Une liste complète peut être obtenue en exécutant alias. Sur ma machine, cela affiche ceci:

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 signifie que la couleur sera désactivée si vous n'imprimez pas directement sur STDOUT.

2
Mark Gardner