soir
je voudraist faire une pipe avec ls et cp, pour ranger mes repetoire
la ligne de commande
je ne sais pas comment recuper la valeur de sorti de ls, pour luis assimiler a cpCode:ls *zip* |cp $? /home/data/
merçis
Version imprimable
soir
je voudraist faire une pipe avec ls et cp, pour ranger mes repetoire
la ligne de commande
je ne sais pas comment recuper la valeur de sorti de ls, pour luis assimiler a cpCode:ls *zip* |cp $? /home/data/
merçis
moi j'utiliserais find pour faire ca :
par contre ca va etre recursif la, si tu veux uniquement trouver dans le repertoire en cours, ajoute l'option "-maxdepth 1"Code:
1
2 find ./ -name "*zip*" -exec cp {} /home/data/ \;
bonjour,
ta méthode ne peux pas fonctinonnée car 'cp' ne lit pas son entrée standard pour avoir le nom des fichier à copier. Le 'pipe' sert simplement à rediriger la sortie de la commande de gauche vers l'entrée de celle de droite, donc dans ton cas n'as aucun effet car 'cp' ne lit pas son entrée standard.
Utilise 'find' comme te le conseille mawww ou un script du genre :
sed -re "s£(*)£\1 /home/data/£" : converti la chaque ligne de sortie de ls (le nom du fichier) en "nomdufichier /home/data/" (se sera l'argument pour 'cp')Citation:
ls *zip* | sed -re "s£(*)£\1 /home/data/£" | xargs -n1 cp
xargs -n1 cp : xargs est une commande qui permet de générer une commande en récupérant les options sur l'entrée standard. Ici la commande a utiliser est 'cp' et aura comme argument la chaine définie ci-dessus.
et c'est quoi le problème avec un truc comme ca :
(modulo le -r s'il s'agit de repertoires...)Code:cp *zip* /home/data
:roll: ben oui vu que le 'ls' du premier post n'est pas récursif y'a pas besoin de find ou d'autre chose :)Citation:
Envoyé par Pouic
merçis a vous
je prefers
j'avaits meme pas penser ;)Code:cp *zip* /home/data
et ben, narmataru, on s'est bien fait feinter tout les deux ou quoi !