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 07/08/2006, à 20:58

shensi

Combiner les commandes : find et -exec

Bonjour à tous!
Je viens d'installer une distribution ubuntu 6.06
J'avais mes disques en ntfs quand j'avais un winwin Xp et je viens juste  d' en acquérir un nouveau que j'ai formaté et  converti en ext2...

Bon la vrai question est :

je cherche à copier d'un coup d'un seul tous les fichier de type '*.avi' ( par exemple) de mon vieux disque en ntfs vers un répertoire de mon nouveau disque en ext2
je trouve pas la bonne syntaxe.
je fais:
find /media/dd-en-ntfs/movies -name '*.avi' -exec cp.... et là je comprend plus /mnt/dd-en-ext2

bref si un linuxien avait la solution ca faciliterai grandement le rangement de mes données héhé

merci bien !
shensi

#2 Le 07/08/2006, à 21:18

l'ineptocide

Re : Combiner les commandes : find et -exec

Bonsoir,
j'ignore comment faire de cette façon. Par contre, je vois bien un script qui aurait plus ou moins cette tête:

#!/bin/bash
for i in `find /media/dd-en-ntfs/movies -name '*.avi'` ; do
cp $i /mnt/dd-en-ext2/$i
done

Si ce n'est pas clair, n'hésite pas à me poser quelque question wink

@+

Dernière modification par l'ineptocide (Le 07/08/2006, à 21:24)

Hors ligne

#3 Le 07/08/2006, à 21:51

shensi

Re : Combiner les commandes : find et -exec

Ah ouais ! c'est très bien ça ! je vais essayer
est ce que tupourrais juste me rappeler comment on execute ce fichier bash?

vi mon_pgm
...
je copie ton code
...

et j'execute avec : .mon_pgm ?

merci
mais si tu fais man find il y a une action possible avec -exec qui peut faire la même chose...

si toutefois quelqu'un avait une idée pour utiliser cette voie?

Shensi

#4 Le 07/08/2006, à 22:11

shensi

Re : Combiner les commandes : find et -exec

voilà ce que j'obtiens:

vi cp_film

#!/bin/bash
for i in `find /mnt/dd-160/movies2 -name '*.avi'`
do
        cp $i /mnt/dd-160/movies/$i
        echo "$i ok";
done

je change les droits en exécution:

chmod u+x cp_film

et pour l'exécuter :   

./cp_film

et le résultat :

root@admin:~# ./cp-film
cp: ne peut créer le fichier régulier `/mnt/dd-160/movies//mnt/dd-160/movies2/ANIMATRIX.avi': Aucun fichier ou répertoire de ce type
/mnt/dd-160/movies2/ANIMATRIX.avi ok
root@admin:~#

bon si quelqu'un a du neuf ...
marci bikou
shensi

#5 Le 08/08/2006, à 06:52

jr95

Re : Combiner les commandes : find et -exec

Bonjour,

c'est faisable en une seule ligne avec find :

find /media/dd-en-ntfs/movies -name '*.avi' -exec cp {} /mnt/dd-en-ext2 \;

Hors ligne

#6 Le 08/08/2006, à 07:43

l'ineptocide

Re : Combiner les commandes : find et -exec

Ah, effectivement je me suis planté. Il y avait un $i de trop.

#!/bin/bash
for i in `find /mnt/dd-160/movies2 -name '*.avi'`
do
        cp $i /mnt/dd-160/movies/
        echo "$i ok";
done

Ceci devrait fonctionner.
Mais il est vrai que la solution de jr95 est plus simple et plus esthétique smile

Hors ligne

#7 Le 09/08/2006, à 18:38

shensi

Re : Combiner les commandes : find et -exec

Et ben voila ! je savais que c'était possible !!!

Merci bien les linuxiens !

Voilà, on peut désormais modifier le titre de ce topic, et l'intégrer convenablements dans les trucs et astuces!

Allez aïollie !