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 22/12/2012, à 13:40

omnimax

ZSH une fonction de malade !!!!

Dans zsh ce qui serait trop cool c'est

cp -R rec[tabulation]

qui nous donnerait

cp -R /home/greg2007/documents/recours.pdf
cp -R /home/greg2007/images/recherche.jpg
cp -R /usr/share/themes/rec.targz
...

et il suffirait de valider le choix comme on le fait habituellement avec la touche tab

Avec l'indexation native des fichiers via zeitgeist dans les nouveaux ubuntu ou bien avec un simple locate il doit bien avoir moyen de faire cela, non?

J'ai cherché sur le net, rien à ce sujet alors si quelqu’un pouvait me dire comment faire ce serait top!

Imaginer un peu le truc de fou

libreoffice cal[tab]
libreoffice /home/greg2007/documents/calc.ods

Là le terminal serait hyper puissant !

Dernière modification par greg2007 (Le 22/12/2012, à 13:44)


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

Hors ligne

#2 Le 22/12/2012, à 14:01

pingouinux

Re : ZSH une fonction de malade !!!!

Bonjour,
L'option -R de cp n'est utile que pour copier récursivement un répertoire.
En bash, on peut faire ceci :

shopt -s globstar
cp **/rec* repertoire_destination

Hors ligne

#3 Le 22/12/2012, à 15:58

omnimax

Re : ZSH une fonction de malade !!!!

oui pour le R tu as raison.

Par contre avec ton option, tu ne sais pas trop ce que tu copies car si tu as deux fichiers commencant par rec, ils seront tous les deux copiés vers ta destination.

Il faudrait avoir le choix comme avec tabulation.


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

Hors ligne

#4 Le 22/12/2012, à 16:09

pingouinux

Re : ZSH une fonction de malade !!!!

greg2007 #3 a écrit :

Par contre avec ton option, tu ne sais pas trop ce que tu copies car si tu as deux fichiers commencant par rec, ils seront tous les deux copiés vers ta destination.

C'est exact. Tu peux alors faire ceci :

for fic in **/rec*
do
   read -p "Copier $fic ? (o/n) " reponse
   [ "$reponse" = "o" ] && cp "$fic" repertoire_destination
done

Hors ligne

#5 Le 22/12/2012, à 17:03

omnimax

Re : ZSH une fonction de malade !!!!

Je vais mettre cela en forme dans mon .zshrc mais à prioiri ta fonction me semble pas mal. je vais essayer de l'étendre pour plusieurs commandes comme avec le libreoffice de mon premier post.

merci


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

Hors ligne

#6 Le 23/12/2012, à 09:43

nesthib

Re : ZSH une fonction de malade !!!!

@greg2007 : avec zsh (mais aussi avec bash) tu peux écrire tes propres règles de complétion. Un exemple parmi tant d'autres.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 23/12/2012, à 13:27

omnimax

Re : ZSH une fonction de malade !!!!

merci Netshib, je viens d'essayer d'analyser ta page...ouf c'est ardu

j'ai déja essayé de copier la dernière fonction hello()... dans mon .zshrc pour voir ce qu'elle racontait mais à mon avis il manque des parenthèse à un endroit.

j'ai essayé de comprendre et j'ai essayé d'en concocter une moi-même en reprenant le résultat de

ls **/*(cequejetape)

et en fonction de la liste qui apparaît je tape le chiffre 2 correspondant à la deuxième ligne du résultat ls et libreoffice ouvre le path numéro 2
de mon choix, etc....

en gros, j'arrive à ceci mais évidemment cela ne fonctionne pas:

libreo() {
	    local curcontext="$curcontext" state line
	    typeset -A opt_args
path=ls **/$ 
read reponse
 
case "$reponse" in
    1 libreoffice $path1
    2 libreoffice $path2
    3 libreoffice $path3
    4 libreoffice $path4
esac }

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

Hors ligne