Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2008, 11h24   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
Par défaut utilisation de l'option -exec de find

Bonjour,
Voila j'aimerais récupérer des fichiers se trouvant dans une arborescence en créant la même arborescence à partir de la commande find, donc j'ai effectué la commande comme telle :
find . -type f -exec cp --parent {} chemin/dossier/ \;

En gros je comptais récupérer tous les fichiers avec leurs sous-répertoires à partir de là où je me trouve vers le répertoire "dossier".

Le problème est qu'il me donne une erreur sur l'option --parent et la commande cp. Voila le résultat :

cp : illegal option -- parent
Usage: cp [-f] [-i] ... f1 f2
cp [-f] [-i] ... f1 ... fn d1
cp -r|-R ... d1 ... dn-1 dn


Donc je ne comprends vraiment pas pourquoi cela ne fonctionne pas. Si quelqu'un pouvait m'aider cela m'aarangerait pas mal.

Merci d'avance.
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 12h04   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
utilises -p au lieu de --parent
si c'est les droits qui t'interessent
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 13h27   #3
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
En fait ça me crée bien les fichiers dans le répertoire "dossier", mais j'aurais aimé que l'arborescence des répertoires soit aussi créée avec les fichiers à l'intérieur. Alors je pense que cela doit être possible notamment avec --parent, c'est pour cela que je l'avais utilisé.

Donc si tu avais une solution pour cela je suis preneur. (peut-être existe-t-il une autre façon de faire comma via un script ....).
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 15h59   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Copie récursive :
Code :
cp -r source destination
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 09h25   #5
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
La copie récursive je l'avais déjà testé mais rien à faire cela me donne toujours les mêmes erreurs.
find . -type f -exec cp -r --parent {} chemin/dossier/ \;

Je ne comprends pas car dans un post de ce site ("Créer une arboresence à partir du résultat de 'find'"), une personne a réussi à le faire avec cette commande et pour moi ça ne fonctionne pas.

N'y a-t-il pas une autre option comme --parent {} qui existe pour reproduire les dossiers parents d'un fichier ?
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 09h53   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Envoyé par panach91 Voir le message
La copie récursive je l'avais déjà testé mais rien à faire cela me donne toujours les mêmes erreurs.
Quelles erreurs ? Ca marche à tous les coups : faut que tu ailles dans le répertoire qui contient le répertoire à copier, puis cp -r repertoire_a_copier repertoire_qui_doit_contenir_la_copie.

Mais je n'ai pas compris : tu veux reconstruire uniquement la structure des répertoires sans fichier ou tu veux copier répertoires + fichiers ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 10h28   #7
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
Je connais la commande cp -r et je sais qu'elle marche mais dans mon cas cela ne fonctionne pas.

Voici réellement ce que je veux (peut-être me suis-je mal exprimé auparavant) :
Admettons que je sois ici : /HOME.
Je possède des fichiers dans :
/HOME/truc/fichiers.
/HOME/truc/bidule/fichiers.
/HOME/truc/bidule/machin/fichiers.
Je souhaite reproduire l'arborescence truc/bidule/machin avec les fichiers dans chaque dossiers, dans ce répertoire /HOME/MOI/truc/bidule/machin.

Pour cela je comptais faire un find pour trouver tous les fichiers à partir de /HOME et recréer l'arborescence avec l'option -exec cp --parent {}. Et c'est cela qui ne fonctionne pas.


J'espère que cette fois-ci j'ai été plus clair. Merci pour votre aide.
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 10h32   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Au risque de vraiment passer pour un lourd, explique moi pourquoi dans ton cas cp -r ne fonctionne pas !! C'est quoi l'erreur ? Problème de droit ? File system plein ? Je ferais ceci :
Code :
1
2
3
cd /HOME
mkdir MOI
cp -r truc MOI
Citation:
Envoyé par panach91
N'y a-t-il pas une autre option comme --parent {} qui existe pour reproduire les dossiers parents d'un fichier ?
Visiblement, cp ne connait pas cette option. A mon avis, si tu tiens vraiment à utiliser find, il faut que tu passes en 2 fois : un premier find avec les options -type d -exec mkdir -p ... pour créer les répertoires puis faire un find avec -type f -exec cp {} ... pour copier les fichiers. Le souci c'est que le cp ne crée pas les répertoires qui manquent sauf à utiliser -r, mais là, on repart dans une discussion qu'on a déjà vue...
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 11h07   #9
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
T'inquiètes je comprends ce que tu veux dire avec cp -r et comme je l'ai dis, j'ai déjà effectué cette commande; Maintenant voici l'erreur qu'il me donne :

cp : insufficient arguments (1)
Usage: cp [-f] [-i] ... f1 f2
cp [-f] [-i] ... f1 ... fn d1
cp -r|-R ... d1 ... dn-1 dn

En fait tu as di quelque chose à laquelle je pensais, c'est que le cp ne doit pas créer les répertoires qui n'existent pas donc c'est pour cela qu'il me donne ces messages d'erreur.

Je vais tester en utilisant les deux find voir si ça fonctionne. Je te tiens au courant.
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 11h20   #10
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Citation:
Envoyé par panach91 Voir le message
cp : insufficient arguments (1)
Pas normal, ça : tu es sûr de ta ligne de commande ? cp -r truc MOI.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2008, 11h34   #11
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 81
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : janvier 2008
Messages : 81
Points : 34
Points : 34
ok d'accord je suis un idiot , j'ai retesté la commande cp -r et là c'est bon ça focntionne, j'avais juste oublié de mettre "./" => cp -r ../truc ./ (bien sur si l'on se place dans le dossier MOI.

Merci de ton aide et encore désolé. Cela va beaucoup m'aider...
panach91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h17.


 
 
 
 
Partenaires

Hébergement Web