Spécifiquement à propos de git (gitignore, gitattributes et commandes qui prennent des noms de fichiers) :si le modèle ne contient pas de barre oblique, *
les jokers correspondront à deep. S'il contient une barre oblique, git appellera fnmatch avec le FNM_PATHNAME
flag, et les caractères génériques simples ne correspondent pas aux barres obliques. **
pour correspondre en profondeur n'est pas pris en charge. Peut-être que ce type de correspondance approfondie pourrait être plus largement pris en charge avec un nouveau FNM_STARSTAR
flag, et une implémentation dans glibc, gnulib et d'autres endroits.
Si vous souhaitez agir sur tous les fichiers renvoyés par find, plutôt que de simplement les lister, vous pouvez les rediriger vers xargs :
find <directory> -type f | xargs ls
Mais ce n'est que pour les commandes qui n'ont pas d'indicateur récursif.
Dans Bash 4, avec shopt -s globstar
, et zsh vous pouvez utiliser **/*
qui inclura tout sauf les fichiers cachés. Vous pouvez faire shopt -s dotglob
dans Bash 4 ou setopt dotglob
dans zsh pour que les fichiers cachés soient inclus.
En ksh, set -o globstar
le permet. Je ne pense pas qu'il existe un moyen d'inclure implicitement des fichiers de points, mais je pense que **/{.[^.],}*
fonctionne.