1 votes

Rendre un exécutable ennuyeux invisible à la complétion de tabulation de bash (cd-it8 etc.)

Lors de l'utilisation de la ligne de commande, cd est l'une des commandes Shell les plus fréquemment utilisées. Je me suis habitué à la possibilité de taper cd en appuyant sur tab et en appuyant ensuite sur tab pour voir quels sont les répertoires dans lesquels il est possible de cd en. Ubuntu a récemment commencé à inclure le colord et ses outils commencent par cd . Maintenant, si j'appuie sur cd y tab Je reçois ceci :

$ cd
cd                 cd-fix-profile     cd-it8             
cd-create-profile  cd-iccdump         

Comment puis-je m'assurer que tous ces cd-* les exécutables n'apparaissent pas lorsque j'utilise la ligne de commande ? Je suppose qu'ils sont nécessaires pour le système d'exploitation, donc je ne peux pas simplement les déplacer ou les renommer ; cependant, je ne veux pas qu'ils soient complétés ou même visibles lorsque je suis dans bash.

Notez que ceci est fait sous bash 4.4.20(1) qui est fourni avec Ubuntu 18.04.

Soit dit en passant, ces exécutables sont-ils toujours inclus dans Ubuntu 20.04 ?

3voto

Quasímodo Points 1905

De Variables Bash ,

EXECIGNORE
Une liste de motifs Shell séparés par deux points (voir Correspondance de motifs ) définissant la liste des noms de fichiers à ignorer lors de la recherche de commandes à l'aide de PATH. Les fichiers dont les noms de chemin complets correspondent à l'un de ces motifs ne sont pas considérés comme des fichiers exécutables aux fins de l'achèvement et de l'exécution des commandes via la recherche PATH.

Ajoutez donc ceci à ~/.bashrc :

EXECIGNORE="*/cd-*:"

Je ne les ai pas cd-* mais voici un autre exemple :

$ EXECIGNORE=
$ ex<TAB>
ex                          exit                        exo-open                    expiry
exec                        exo-csource                 exo-preferred-applications  export
exifautotran                exo-desktop-item-edit       expand                      expr
$ xfc<TAB>
xfce4-terminal          xfce4-terminal.wrapper  xfconf-query
$ EXECIGNORE="*/ex?*:*/xfconf-query:"
$ ex<TAB>
ex      exec    exit    export
$ xfc<TAB>
$ xfce4-terminal

Elle illustre un point important : Les builtins Shell ne sont pas exclus ( exec , exit y export sont toujours suggérés dans la complétion), puisqu'ils ne sont pas recherchés à l'aide de PATH.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X