Glob Not Match?

Comment classr les files qui ne correspondent pas à un glob?

Par exemple, disons que j'ai un directory contenant des centaines de files, dont 97% ont l'extension de file .png .

Je sais que je peux énumérer les files PNG avec:

 ls *.png 

Mais, comment je list le contraire, c'est-à-dire les files non-PNG?

En utilisant ls:

 ls -I "*.png" 

les guillemets sont importants pour arrêter la shell évaluant le *

En utilisant find:

 find . -not -name "*.png" 

Si vous avez des sous-directorys (avec des files), vous pouvez limiter la search:

 find . -maxdepth 1 -type f -not -name "*.png" 

  • -maxdepth 1 limite au directory actuel
  • -type f permet seulement d'imprimer des files