syntaxe de ls --hide = et ls --ignore =

16

ls --hideet ls --ignoreoffre la possibilité d'omettre les fichiers définis par des expressions régulières définies après la --ignore=partie. Ce dernier s'assure que cette option n'est pas désactivée via -a, -A. La commande manet la infopage mentionnent les expressions régulières.

Question : Quels caractères génériques ou expressions régulières sont pris en charge dans ls --hide=et ls --ignore=.

J'ai découvert que cela * $ ?semble être pris en charge, ainsi que les expressions de support POSIX. Mais cela ne semble pas fonctionner correctement tout le temps et c'est plus un jeu d'essais et d'erreurs pour moi. Ai-je raté quelque chose d'important ici?

erch
la source
Assez lié, mais cette question concerne spécifiquement --ignoretandis que la question que vous avez citée concerne emacs et --ignoren'est mentionnée qu'en passant dans la réponse.
bahamat

Réponses:

12

Du manuel :

-I pattern, --ignore=pattern

Dans les répertoires, ignorez les fichiers dont les noms correspondent au modèle de shell (et non à l'expression régulière). Comme dans le shell, une initiale .dans un nom de fichier ne correspond pas à un caractère générique au début du modèle. Il est parfois utile de donner cette option plusieurs fois. Par exemple,

     $ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'

La première option ignore les noms de longueur 3 ou plus commençant par ., la seconde ignore tous les noms à deux caractères commençant par .excepté .., et la troisième ignore les noms commençant par #.

Vous ne pouvez utiliser que des modèles de glob de shell : *correspond à n'importe quel nombre de caractères, ?correspond à n'importe quel caractère, […]correspond aux caractères entre crochets et \cite le caractère suivant. Le personnage $se représente lui-même (assurez-vous qu'il est entre guillemets simples ou précédé d'un \pour le protéger de l'expansion du shell).

Gilles 'SO- arrête d'être méchant'
la source
0

Il utilise le format de modèle d'expression régulière POSIX.2. Voir la re_format(7)page de manuel pour des détails spécifiques.

bahamat
la source
c'est exactement ce que je voulais dire avec POSIX Bracket Expression :)
erch
Je suppose que ce que je voulais vraiment dire était de vous dire de lire la page de manuel.
bahamat