web-dev-qa-db-fra.com

trouvé ls binaire en utilisant whereis mais ne peut pas trouver ll pourquoi?

trouvé ls binaire en utilisant whereis mais ne peut pas trouver ll pourquoi? Comment trouver où ll binaire loactive?

J'ai trouvé "ls" en utilisant "whereis" mais je ne trouve pas "ll"

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

Mais ne trouve pas ll:

$ whereis ll
ll:
6
Ashish Karpe

ll n'est pas un fichier binaire, mais un alias de la commande ls -alF.

Vérifiez le fichier .bashrc:

$ alias ll
alias ll='ls -alF'
14
hg8

Comme noté par kos dans les commentaires, vous devez utiliser la commande commande intégrée type de bash qui, contrairement à whereis, connaît également les alias. et Shell intégrés:

$ type ll ls cd
ll is aliased to `ls -alF'
ls is hashed (/bin/ls)
cd is a Shell builtin

(Pour la signification de "haché", voir cette question sur unix.SE .)

7
Ilmari Karonen

De nombreux utilisateurs aiment les raccourcis. C'est un alias, une option de raccourci pour les utilisateurs.

Les scripts ne doivent pas utiliser de raccourcis, ce n'est pas une conception portable, comme vous l'avez découvert, ces commandes d'alias ne sont pas toujours définies.

La réponse la plus simple pour répondre à vos besoins, en supposant que l'utilisation de 'll' soit répétée:

Dans le script, définissez l'alias ll = 'ls -l', avant de référencer la commande, l'utilisation de 'll' fonctionnera tout au long de ce script.

#!/bin/bash
alias  ll='ls -alF'
... (rest of the script)

Meilleure réponse: mieux utiliser la commande complète dans le script, fournit de la documentation. N'utilisez jamais d'alias dans un script que d'autres doivent utiliser.