Por que a última árvore não está encontrando fstab ?
tree /etc -P fstab --prune
/etc
└── fstab
0 directories, 1 file
.
tree /etc -P fsta* --prune
/etc
└── fstab
0 directories, 1 file
.
tree /etc -P *stab --prune
/etc
└── fstab
0 directories, 1 file
O que esta acontecendo aqui?
De acordo com o meu entendimento, deve encontrar pelo menos fstab
tree /etc -P *sta* --prune
/etc
0 directories, 0 files
Quando você usa um padrão globbing sem aspas na linha de comando, o shell tentará combiná-lo com os nomes dos arquivos. Se nenhum nome de arquivo corresponder ao padrão, a maioria dos shells manterá o padrão não expandido (
zsh
por padrão reclamaria, como fariabash
comset -u
).Você obviamente tem algum arquivo cujo nome corresponde
*sta*
, mas nãofsta*
ou*stab
. O shell se expande*sta*
para o nome desse arquivo, o que significa que o padrão não corresponde maisfstab
em/etc
.A solução é usar aspas simples ou duplas ao redor do padrão (e deixar
tree
fazer sua própria correspondência de padrões internamente).