#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
@+
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
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 !