Quelqu'un peut-il me dire à quelle commande de terminal l'alias ll
est destiné? Tout ce que je peux trouver en ligne, c'est que beaucoup de gens disent qu'il s'agit d'un alias pour ls -l
ou ls -la
ou ls -ltr
. Mais c'est tout simplement faux. Le résultat est différent. Existe-t-il un moyen de localiser ll
et d’en examiner la syntaxe?
Vous pouvez utiliser les commandes alias
ou type
pour vérifier la signification d'un alias spécifique:
$ alias ll
alias ll='ls -alF'
$ type ll
ll is aliased to `ls -alF'
Notez cependant que les alias peuvent utiliser d'autres alias, vous devrez donc peut-être le vérifier de manière récursive, par exemple. dans le cas de ll
, vous devriez également vérifier la commande ls
qu'il appelle:
$ alias ls
alias ls='ls --color=auto'
$ type ls
ls is aliased to `ls --color=auto'
Donc, ll
signifie en réalité:
ls --color=auto -alF
ll
est un alias défini dans votre ~/.bashrc
, à condition que vous ne l'ayez pas changé, il s'agit de ls -alF
:
$ grep ll= <~/.bashrc
alias ll='ls -alF'
Ces trois options sont:
Comme
$ grep ls= <~/.bashrc
alias ls='ls --color=auto'
montre, ls
est à nouveau un alias pour ls --color=auto
:
Avec
--color=auto
,ls
n'émet des codes de couleur que lorsque la sortie standard est connectée à un terminal. La variable d'environnementLS_COLORS
peut modifier les paramètres. Utilisez la commandedircolors
pour le définir.
Vous pouvez regarder dans votre ~/.bashrc (ou un fichier contenant vos alias) ou vous pouvez écrire certaines de ces commandes dans votre 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
Mais pourquoi utiliser find sans -name ". *"? Parce que vous pouvez mettre cela dans votre .bashrc
source bash_hacks # where the file bash_hacks, in your home directory can
# contain the alias ll='ls -la etc etc'.
Puisque "ll" est un alias, ce n'est pas nécessaire que vous ayez une seule signification (ll = 'ls -alF --color'), vous pouvez alias votre "ll" comme une autre commande comme, je ne sais pas, "rm" . Je pense que c'est plus une convention (produit d'usages courants).
Mais "ll" pourrait être un programme stocké dans n’importe quel dossier de votre PATH. Par exemple, si vous avez un dossier nommé "bin" dans votre maison, créez un script "ll" contenant quelque chose comme:
#!/bin/bash
ls -lhar
Mais que se passe-t-il si votre PATH a été modifié pour ajouter un autre dossier contenant la nouvelle commande "ll"? Pour plus d'informations intéressantes, vous pouvez consulter le lien suivant à une question connexe.
Il n'est pas nécessaire d'analyser ~/.bashrc ou tout autre script. Vous pouvez vérifier les valeurs actuelles de tous les alias en tapant la commande alias
dans le terminal. Il apportera tous les alias définis avec leurs définitions sur votre écran.