Puis-je garder. Et … hors de. * Expansion?

Je trouve souvent ennuyant (ou pire) quand je tape

command .* 

Dans bash et la commande s'applique au répertoire parent et au répertoire actuel. Existe-t-il une option de shell ou une autre configuration que je peux modifier pour faire bash exclure . Et .. de l'expansion de .* ?

En bash, dans cet ordre:

 GLOBIGNORE=. shopt -u dotglob 

Lorsque GLOBIGNORE est configuré,. Et … sont automatiquement ignorés, donc vous n'avez pas vraiment besoin de les configurer dans GLOBIGNORE, mais si vous n'avez rien d'autre à ignorer, vous n'aurez rien à configurer.

Chaque fois que vous réglez GLOBIGNORE sur une valeur non nulle, bash active l'option dotglob , vous devrez donc l'éteindre par la suite; Sinon, bash va se développer * pour inclure des fichiers commençant par un point.

Sur un système inconnu où j'ai trop peu de temps pour vérifier les paramètres utilisés (comme GLOBIGNORE), j'utilise le modèle infaillible suivant:

 command .??* 
  • Rapide à saisir et à exclure . Et .. indépendamment de l'environnement.