Sweetohm

Michel Casabianca


Les globs récursifs permettent de trouver des fichiers dans des sous-répertoires récursivement.

Supposons que l’on a une arborescence de fichiers comme suit :

$ tree
.
├── test
│   ├── test
│   │   └── test.go
│   └── test.go
└── test.go

Si l’on souhaite lister tous les fichiers ayant l’extension .go, il nous faut taper :

$ find . -name "*.go"
./test/test/test.go
./test/test.go
./test.go

On peut les lister plus simplement à l’aide d’un glob récursif, la séquence ** indiquant un nombre quelconque de sous-répertoires, comme suit :

$ ls **/*.go
test.go  test/test.go  test/test/test.go

Par défaut les globs récursifs sont désactivés dans le bash :

$ shopt globstar
globstar        off
$ ls **/*.go
test/test.go

On peut les activer avec la commande suivante :

$ shopt -s globstar
$ ls **/*.go
test.go  test/test.go  test/test/test.go

On peut désactiver l’option avec la commande shopt -u globstar.

Enjoy!