Konkrétně o git (gitignore, gitattributes a příkazech, které přebírají názvy souborů):pokud vzor neobsahuje žádné lomítko, *
zástupné znaky se budou shodovat hluboko. Pokud obsahuje lomítko, git zavolá fnmatch s FNM_PATHNAME
vlajka a jednoduché zástupné znaky nebudou odpovídat lomítkům. **
hloubková shoda není podporována. Možná by tento druh hluboké shody mohl být více podporován novým FNM_STARSTAR
flag a implementaci v glibc, gnulib a dalších místech.
Pokud chcete jednat se všemi soubory vrácenými funkcí find, a nikoli pouze vypisovat, můžete je převést na xargs:
find <directory> -type f | xargs ls
Ale to platí pouze pro příkazy, které nemají rekurzivní příznak.
V Bash 4 s shopt -s globstar
, a zsh můžete použít **/*
který bude zahrnovat vše kromě skrytých souborů. Můžete udělat shopt -s dotglob
v Bash 4 nebo setopt dotglob
v zsh způsobí zahrnutí skrytých souborů.
V ksh, set -o globstar
umožňuje to. Nemyslím si, že existuje způsob, jak implicitně zahrnout soubory s tečkami, ale myslím, že **/{.[^.],}*
funguje.