Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/08/2013, à 21:48

omnimax

résolu Zsh shopt -s extglob ???

Bonsoir,

Sous bash après avoir tapé

shopt -s extglob

Cette commande consistant à tout copier sauf les extensions en JPG fonctionne

cp !(*.jpg) /home/user/

Par contre sous zsh

shopt -s extglob

n'est pas reconnu
Et la commande avec

cp !(*.jpg) /home/user/

ne fonctionne pas car il ne reconnait pas !(expression).

J'ai déjà essayé de mettre setopt nocaseblog dans mon .zshrc  (il semblerait que c.est l'équivalent pour l'option extglob) mais sans réussite.

Dans set -o j'ai aussi essayé pas mal d' options mais cela n'a pas fonctionné.

Que dois-je faire ?

Merci pour votre réponse.

Dernière modification par omnimax (Le 20/08/2013, à 09:36)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#2 Le 19/08/2013, à 11:41

omnimax

Re : résolu Zsh shopt -s extglob ???

personne pour ce sujet ?


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#3 Le 19/08/2013, à 17:13

Watael

Re : résolu Zsh shopt -s extglob ???

salut,

man zshexpn /FILENAME GENERATION :

^x     (Requires EXTENDED_GLOB to be set.)  Matches anything except the  pattern  x.   This  has  a
              higher  precedence than `/', so `^foo/bar' will search directories in `.' except `./foo' for
              a file named `bar'.

plus bas, sont décrits les ksh-like Glob Operators

Dernière modification par Watael (Le 19/08/2013, à 17:14)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 19/08/2013, à 20:54

omnimax

Re : résolu Zsh shopt -s extglob ???

salut Watael,


merci pour le man j'ai essayé avec

cp *.*^*.pdf ~/Desktop

cela n'a pas fonctionné chez moi  (extendedglob étant activé)

plus bas j'ai lu 

(Requires EXTENDED_GLOB to be set.)  Match anything that matches
              the pattern x but does not match y.  This has  lower  precedence
              than  any  operator except `|', so `*/*~foo/bar' will search for
              all files in all directories in `.'  and then exclude  `foo/bar'
              if there was such a match.  Multiple patterns can be excluded by
              `foo~bar~baz'.  In the exclusion pattern (y), `/'  and  `.'  are
              not treated specially the way they usually are in globbing.

et là

cp *.*~*.pdf ~/Desktop

a parfaitement fonctionné hmm

Dois je comprendre que ^x ne fonctionne que pour les répertoires comme le montre l'exemple dans le man ?


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#5 Le 19/08/2013, à 21:24

MicP

Re : résolu Zsh shopt -s extglob ???

https://wiki.gentoo.org/wiki/Zsh/HOWTO
http://doc.ubuntu-fr.org/zsh
setopt extendedglob

Dernière modification par MicP (Le 19/08/2013, à 21:33)

Hors ligne

#6 Le 19/08/2013, à 21:28

omnimax

Re : résolu Zsh shopt -s extglob ???

Non visiblement ce n'est pas ça, qui plus est dans le man on parle juste d'extendedglob

setopt kshglob 


cp *.*^*.pdf ~/Desktop
zsh: no matches found: *.*^*.pdf

Dernière modification par omnimax (Le 19/08/2013, à 21:28)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#7 Le 19/08/2013, à 21:30

omnimax

Re : résolu Zsh shopt -s extglob ???

Visiblement, entre-temps, MicP tu as modifié ton message smile


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#8 Le 19/08/2013, à 21:34

omnimax

Re : résolu Zsh shopt -s extglob ???

ceci marche :

cp ^*.pdf ~/Desktop

par contre ce que tu m'a donné en lien ne fonctionnait pas

 cp ^*.(pdf) ~/Desktop

When option above is set, you are able to use extended globbing queries such as cp ^*.(tar|bz2|gz) .


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#9 Le 19/08/2013, à 21:35

MicP

Re : résolu Zsh shopt -s extglob ???

omnimax a écrit :

...Visiblement, entre-temps, MicP tu as modifié ton message ...

je continue à chercher, mais je ne peux pas tester avec zsh.
Je viens juste de rajouter un lien qui était sur la doc d'ubuntu qui semble confirmer que c'est plutôt "extendedglob"

omnimax a écrit :

...ce que tu m'a donné en lien ne fonctionnait pas ...

Finalement, c'est quel lien le bon sur ces 2 là ?
https://wiki.gentoo.org/wiki/Zsh/HOWTO
http://doc.ubuntu-fr.org/zsh

Dernière modification par MicP (Le 19/08/2013, à 21:41)

Hors ligne

#10 Le 19/08/2013, à 21:49

omnimax

Re : résolu Zsh shopt -s extglob ???

en fait cela marche (le lien gentoo), mais je trouve qu'il aurait pu l'expliquer

cp ^*.(pdf) ~/Desktop

ne marche pas car (pdf) =un motif unique

et

cp ^*.(pdf|xls|png) ~/Desktop)

fonctionne

donc pour un motif unique la bonne expression c'est :

cp ^*.pdf ~/Desktop

mais je vais relire la doc gentoo assidument ainsi que le man (même si c'est hyper longgggg  neutral)


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne

#11 Le 19/08/2013, à 23:54

MicP

Re : résolu Zsh shopt -s extglob ???

J'ai finit par comprendre que c'est le premier lien (que j'avais effacé) qui ne marchait pas : celui qui proposait "setopt kshglob".
Effectivement, j'avais modifié mon post 10 mn après, ayant constaté que ça ne pouvait être ça.
Finalement, les deux liens proposés conviennent, et je suis peut-être allé bien loin chercher ce qui se trouvait tout simplement dans la doc de ce forum.

omnimax a écrit :

... même si c'est hyper longgggg  ...

C'est vrai, c'est toujours comme ça avec des documentations qui semblent trop détaillées, mais on y trouve toujours un intérêt sur le long terme.
Si c'est pas sur le moment, il revient parfois des souvenirs qui permettent de régler des problèmes rapidement,
et dans ces moments là, on ne regrette plus du tout son investissement.

Hors ligne

#12 Le 20/08/2013, à 09:37

omnimax

Re : résolu Zsh shopt -s extglob ???

Merci merci à vous deux smile


14.04 unity et Linux Mint KDE 13 zsh-meilleur shell   script fire

Hors ligne