2016-10-20 2 views
0

En zsh sur une ligne de commande que je peux obtenir ceci pour fonctionner comme vous le souhaitez:Copier les fichiers en utilisant les jokers (où aucun match), zsh

cp some_dir/!(0*).jpg dest_dir/ 

et il copie sur tous les fichiers qui ne commencent pas par 0 à dest_dir.

Mais lorsque je tente d'utiliser le même d'un script zsh, je reçois l'erreur suivante:

no matches found: some_dir/!(0*).jpg 

Quel est le problème ici, et comment le résoudre?

Répondre

1

Cette fonction nécessite l'option shell KSH_GLOB à définir:

setopt kshglob 

Voir la ZSH Manual on ksh-like Glob Operators pour plus d'informations.


En variante, on peut définir l'option EXTENDED_GLOB et en utilisant ^ pour annuler motifs (partiel):

setopt extendedglob 
cp some_dir/(^0*).jpg dest_dir/