Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 01/10/2008, à 17:07

probably-me

[Résolu]Commande copier-coller

Déjà, bonjour big_smile,
petit nouveau sur Ubuntu (Allez, on dira depuis une bonne semaine) j'ai pas mal touché à tout ce qui était commandes etc... Et là, en bon geek que je suis, j'aimerais faire une commande pour copié collé des épisodes de séries que j'ai sur mon disque dur externe dans mon dossier video.

Jusqu'ici, j'aurai pu utilisé que

cp /media/DisqueExterne /home/tom/video

mais ces video sont dans des fichiers séparés. Pour vous donner un ordre d'idée :

-/media/disqueExterne/Série/Episode1/Episode1.avi
-/media/disqueExterne/Série/Episode2/Episode2.avi
-....

et je voudrais obtenir, après mon copier-coller :

-/home/tom/video/Série/Episode1.avi
-/home/tom/video/Série/Episode2.avi
-...

Voilà, j'espère avoir été clair, et s'il est possible qu'on m'explique comment la commande marche, bah c'est que mieu. roll

Merci d'avance smile

EDIT : Solution : cp /media/disqueExterne/Série/*/*.avi /home/[user]/Video/Serie

Merci Rom:rolleyes:

Dernière modification par probably-me (Le 01/10/2008, à 17:46)


"Quand la rivière est rouge empreinte le petit chemin boueux"

Hors ligne

#2 Le 01/10/2008, à 17:10

tiky

Re : [Résolu]Commande copier-coller

Avec la magnifique commande find !

find /media/disqueExterne/Série/ -name *.avi -exec cp {} /home/tom/video/Série/ \;

Attention: Je n'ai pas testé, il peut y avoir des fautes de syntaxe wink

Pour comprendre la commande:

man find

Dernière modification par tiky (Le 01/10/2008, à 17:12)


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#3 Le 01/10/2008, à 17:26

probably-me

Re : [Résolu]Commande copier-coller

J'ai essayer, il me réponds qu'il manque un parametre pour le -exec neutral. Jai pourtant chercher dans man find, etc... Mais rien du tout..

Dernière modification par probably-me (Le 01/10/2008, à 17:28)


"Quand la rivière est rouge empreinte le petit chemin boueux"

Hors ligne

#4 Le 01/10/2008, à 17:29

Hoper

Re : [Résolu]Commande copier-coller

J'ai essayer, il me réponds qu'il manque un argument pour le -exec

Tu peux copier/coller exactement ce que tu tape et ce qu'il répond ?
Parce que la comme ca, au premier coup d'oeil, je vois pas d'erreur de syntaxe (meme si moi non plus j'ai pas testé, donc je peux la rater aussi).


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/tdc/

Hors ligne

#5 Le 01/10/2008, à 17:29

yohann

Re : [Résolu]Commande copier-coller

find /media/disqueExterne/Série/ -exec cp '{}' /home/tom/vidéo/Série/  \;

c'est peut etre pas la méthode la plus simple ou la plus élégante par contre...

pour comprendre comment ça fonctionne, rien ne vaut man find (et pas mal de patience)
en gros la commande find vas trouver tous les fichier et repertoire dans /média/disqueExterne/Série/
puis l'option -exec va appliquer sur chaque élément trouvé la comande cp
le '{}' correspond alors au nom du trouvé par find
on copie les fichier dans /home/tom/vidéo/Série/ puis \;
signifie que l'option -exec est terminé (pour pouvoir eventuellement passer d'autre parametres a find)

enfin il est a noté que c'est un peu porky car on fait aussi un cp de tout les repertoire (car find les trouvent) mais la commande cp (que nous utilisons ici sans l'option -r) vas ommetre les repertoire trouvé par find pour ne copier que les fichier.

on pourrait en effet affiner cette commande en donnant plus de parametre a find par exemple:

- fichier uniquement
- un pattern avec le nom du fichier

mais bon, je vais pas te faire tout le boulot, sinon ce serait pas marrant

ps: j'aime bien ta signature d'un gout plutot douteux...:lol:

edit: multigrilled

edit: s'il te manque un parametre pour exec c'est parce que ton shell va interpreter certain caracteres et donc ils ne seront pas passé a la commande find,
pour cette commande les caracteres suivant doivent etre protégés:
{
}
;

donc conretement c'est  {} qui provoque l'erreur a mon avis, protege le avec des ' ou des \
'{}' ou \{\}

Dernière modification par yohann (Le 01/10/2008, à 17:33)


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#6 Le 01/10/2008, à 17:33

probably-me

Re : [Résolu]Commande copier-coller

C'est pas ce que je demande, je veux surtout pas que tu me fasse tout le boulot, sinon, je te fax mon PC et j'attends que tu me le renvoie. wink

Cela dis, après un man find (Et une bonne dose de patience) y me réponds toujours qu'il manque un paramètre. Voila ce que je tape et ce qui me reviens :

tom@tom-laptop:"~"$ find /media/WD\ Passport/Disk\ extern/Californication.S01.COMPLETE.VOSTFR-PM4/ -name *.avi -exec cp {} /home/tom/Vidéos/Californication/
find: Paramètre manquant pour « -exec »

EDIT : Je vais tester en protégeant { & }
EDIT : Même en protégeant les accolades, pas moyen de la faire fonctionner.. sad. Je pige pas le paramètre qu'il réclame.

Dernière modification par probably-me (Le 01/10/2008, à 17:39)


"Quand la rivière est rouge empreinte le petit chemin boueux"

Hors ligne

#7 Le 01/10/2008, à 17:34

yohann

Re : [Résolu]Commande copier-coller

find /media/WD\ Passport/Disk\ extern/Californication.S01.COMPLETE.VOSTFR-PM4/ -name *.avi -exec cp '{}' /home/tom/Vidéos/Californication/


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#8 Le 01/10/2008, à 17:35

®om

Re : [Résolu]Commande copier-coller

cp /media/DisqueExterne/Série/*/*.avi /home/tom/video/Série

Hors ligne

#9 Le 01/10/2008, à 17:36

yohann

Re : [Résolu]Commande copier-coller

lol:lol::lol:
euh j'ai trop honte
merci rom pour la leçon d'humilité


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#10 Le 01/10/2008, à 17:44

probably-me

Re : [Résolu]Commande copier-coller

Waooo. Bon, j'avoue que ca fais un choque. C'est un peu trop simple tongue. Merci quand même. Autre chose, parce-que je suis têtu, une idée de pourquoi ca marchais pas avec find ?

(Je passe le topic en résolu)


"Quand la rivière est rouge empreinte le petit chemin boueux"

Hors ligne

#11 Le 01/10/2008, à 17:45

yohann

Re : [Résolu]Commande copier-coller

a mon avis a cause des {} qui n'était pas échappés


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#12 Le 01/10/2008, à 17:49

®om

Re : [Résolu]Commande copier-coller

tongue

Parce qu'il manquait des ' ' autour du *.avi, et il manquait le \; à la fin.
Au passage, autant mettre des ' ' aussi pour les répertoires avec espaces, ça évite de les backslasher :

find '/media/WD Passport/Disk extern/Californication.S01.COMPLETE.VOSTFR-PM4' -name '*.avi' -exec cp {} /home/tom/Vidéos/Californication/ \;

La différence entre la commande que j'ai donnée plus haut et celle-ci, c'est que celle-ci prend tous les .avi récursivement, alors que l'autre ne prend que les .avi à un niveau de profondeur 1 (/*/*.avi).

Hors ligne

#13 Le 01/10/2008, à 18:03

tiky

Re : [Résolu]Commande copier-coller

®om a écrit :

tongue

Parce qu'il manquait des ' ' autour du *.avi, et il manquait le \; à la fin.
Au passage, autant mettre des ' ' aussi pour les répertoires avec espaces, ça évite de les backslasher :

find '/media/WD Passport/Disk extern/Californication.S01.COMPLETE.VOSTFR-PM4' -name '*.avi' -exec cp {} /home/tom/Vidéos/Californication/ \;

La différence entre la commande que j'ai donnée plus haut et celle-ci, c'est que celle-ci prend tous les .avi récursivement, alors que l'autre ne prend que les .avi à un niveau de profondeur 1 (/*/*.avi).

Les '' autour de *.avi ne sont pas nécessaires, par contre il fallait évidemment mettre le \; donc ma commande était juste tongue


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#14 Le 01/10/2008, à 18:08

®om

Re : [Résolu]Commande copier-coller

tiky a écrit :

Les '' autour de *.avi ne sont pas nécessaires, par contre il fallait évidemment mettre le \; donc ma commande était juste tongue

Si, ils sont nécessaires, car sinon, si tu as un fichier avi dans le répertoire courant ($PWD) quand tu exécutes la commande, le * sera expansé.
Si tu n'as pas de fichier .avi dans le répertoire courant, ça reviendra au même...

Hors ligne

#15 Le 01/10/2008, à 18:28

tiky

Re : [Résolu]Commande copier-coller

®om a écrit :
tiky a écrit :

Les '' autour de *.avi ne sont pas nécessaires, par contre il fallait évidemment mettre le \; donc ma commande était juste tongue

Si, ils sont nécessaires, car sinon, si tu as un fichier avi dans le répertoire courant ($PWD) quand tu exécutes la commande, le * sera expansé.
Si tu n'as pas de fichier .avi dans le répertoire courant, ça reviendra au même...

Pas faux, bon elle était presque bonne ^^


Conseil d'expert: il vous faut un dentifrice adapté...

Hors ligne

#16 Le 09/08/2013, à 00:42

Exabra

Re : [Résolu]Commande copier-coller

Mais es ce que vous pourriez faire avec un autre exemple parce que pour moi je ne sais pas par quoi remplacer ....

Hors ligne

Haut de page ↑