Copie de fichier de rep A vers B
Résolu
yoman59000
Messages postés
4
Statut
Membre
-
jipicy Messages postés 41342 Statut Modérateur -
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
je souhaiterai copier le contenu d'un répertoire A qui peut contenir des sous répertoires vers un répertoire B si seulement les fichiers ne sont pas présents dans B.
Pourriez vous m'aider s'il vous plait car je suis pas tres calé sous shell Unix
j'ai une petite idée mais je n'arrive pas à la mettre en oeuvre sous shell ksh
parcourir l'arborescence avec une boucle et vérifier si fichier de REP A pas présent dans REP B alors copier sinon pas copier
par contre je sais pas comment faire gérer la récursivité
car c'est arborescence REP-->fichier--->sous répertoire --->fichiers ---->sous répertoires
merci bcp c'est urgent
je souhaiterai copier le contenu d'un répertoire A qui peut contenir des sous répertoires vers un répertoire B si seulement les fichiers ne sont pas présents dans B.
Pourriez vous m'aider s'il vous plait car je suis pas tres calé sous shell Unix
j'ai une petite idée mais je n'arrive pas à la mettre en oeuvre sous shell ksh
parcourir l'arborescence avec une boucle et vérifier si fichier de REP A pas présent dans REP B alors copier sinon pas copier
par contre je sais pas comment faire gérer la récursivité
car c'est arborescence REP-->fichier--->sous répertoire --->fichiers ---->sous répertoires
merci bcp c'est urgent
A voir également:
- Copie de fichier de rep A vers B
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
6 réponses
jp@MDK:~/tmpfs ssh$ tree
.
|-- comptes_mails_orange.xls
|-- dossier
| |-- foo.sh
| |-- foo.sh~
| `-- plop
|-- foo.sh
|-- foo.sh~
|-- plop
`-- rep
2 directories, 7 files
jp@MDK:~/tmpfs ssh$ rsync -avz /home/jp/tmpfs/dossier rep/
building file list ... done
dossier/
dossier/foo.sh
dossier/foo.sh~
dossier/plop
sent 727 bytes received 92 bytes 546.00 bytes/sec
total size is 648 speedup is 0.79
jp@MDK:~/tmpfs ssh$ tree
.
|-- comptes_mails_orange.xls
|-- dossier
| |-- foo.sh
| |-- foo.sh~
| `-- plop
|-- foo.sh
|-- foo.sh~
|-- plop
`-- rep
`-- dossier
|-- foo.sh
|-- foo.sh~
`-- plop
3 directories, 10 files
jp@MDK:~/tmpfs ssh$ rm -f rep/dossier/plop
jp@MDK:~/tmpfs ssh$ tree
.
|-- comptes_mails_orange.xls
|-- dossier
| |-- foo.sh
| |-- foo.sh~
| `-- plop
|-- foo.sh
|-- foo.sh~
|-- plop
`-- rep
`-- dossier
|-- foo.sh
`-- foo.sh~
3 directories, 9 files
jp@MDK:~/tmpfs ssh$ rsync -avz --ignore-existing /home/jp/tmpfs/dossier rep/
building file list ... done
dossier/
dossier/plop
sent 390 bytes received 48 bytes 876.00 bytes/sec
total size is 648 speedup is 1.48
jp@MDK:~/tmpfs ssh$ $ tree
.
|-- comptes_mails_orange.xls
|-- dossier
| |-- foo.sh
| |-- foo.sh~
| `-- plop
|-- foo.sh
|-- foo.sh~
|-- plop
`-- rep
`-- dossier
|-- foo.sh
|-- foo.sh~
`-- plop
3 directories, 10 files
jp@MDK:~/tmpfs ssh$;-))
Il suffit de lire la doc :
Ce qui donne :
Dans ce cas le répertoire "copier" sera recopié récursivement dans "/mon/repertoire/de/destination"
Bonne chance
man cp
Ce qui donne :
cp -r /mon/repertoire/a/copier /mon/repertoire/de/destination
Dans ce cas le répertoire "copier" sera recopié récursivement dans "/mon/repertoire/de/destination"
Bonne chance
merci pour ton retour mais la commande cp -r ne suffira pas car cela risque décraser les fichiers du REP B par ceux de A si c'est les meme alors que je ne veux pas justement
exemple si le fichier_1 est déja présent dans MON_REP_DESTINATION je ne veux pas l'écraser par celui présent dans le répertoire MON_REP_A_COPIER
MON_REP_A_COPIER/fichier_1
j'espere que je suis clair dans mes explications.
donc ce n'est pas aussi simple avec une commande il faut un script mais je sais pas quoi
exemple si le fichier_1 est déja présent dans MON_REP_DESTINATION je ne veux pas l'écraser par celui présent dans le répertoire MON_REP_A_COPIER
MON_REP_A_COPIER/fichier_1
j'espere que je suis clair dans mes explications.
donc ce n'est pas aussi simple avec une commande il faut un script mais je sais pas quoi
Salut,
Alors regarde du côté de rsync :
Alors regarde du côté de rsync :
rsync -avz --ignore-existing /rep/source /rep/destination;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
la commande rsync n'est pas approprié pour ma question elle est valable pour tranfert vers une machine distant moi la copie se fait sur les repertoires de la meme machine
oui effectivement je confirme désolé pour l'erreur
par contre le pb avec rsync c'est le suivant :
j'ai un répertoire TOTO qui contient les fichiers A B C D E le repertoire TITI qui contient A B C D
si je modifie A et que je fait la commande
rsync -av toto/ titi/ alors le fichier A est quand meme ecrassé dans le répertoire TITI alors que je veux juste qu'il rajoute E dans le repertoire TITI
par contre le pb avec rsync c'est le suivant :
j'ai un répertoire TOTO qui contient les fichiers A B C D E le repertoire TITI qui contient A B C D
si je modifie A et que je fait la commande
rsync -av toto/ titi/ alors le fichier A est quand meme ecrassé dans le répertoire TITI alors que je veux juste qu'il rajoute E dans le repertoire TITI