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 21/02/2010, à 17:31

xyzers

Copie le contenu d'un répertoire et sous rép sans les sous rép

Bonjour à tous,

Je suis à la recherche d'une commande ou script pour copier des fichiers qui sont dans des sous répertoire vers 1 seul répertoire de destination ex :
Repertoire_Source/Rep1/fichier1.txt
Repertoire_Source/Rep1/fichier2.txt
Repertoire_Source/Rep2/fichier3.txt
Repertoire_Source/Rep2/fichier4.txt

resultat de la copie :
Repertoire_destination/fichier1.txt
Repertoire_destination/fichier2.txt
Repertoire_destination/fichier3.txt
Repertoire_destination/fichier4.txt

Bien sur les noms des sous répertoires sont variables, ainsi que les noms des fichiers.

Donc nesthib, m'a répondu (dans un autre poste) :

find Repertoire_Source/ -name "*.txt" -exec cp "{}" Repertoire_destination/ \;

Ce code marche mais si, je refait et si le fichier existe dans le repertoire destination, il ne faut pas le recopier. je ne sais comment faire ?

Dernière modification par xyzers (Le 21/02/2010, à 17:37)

Hors ligne

#2 Le 21/02/2010, à 18:02

Plonk

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

Bonjour, tu dois pouvoir faire un petit script avec test.

man test a écrit :

NAME
       test - check file types and compare values
[...]
       -e FILE              FILE exists

Dernière modification par Plonk (Le 21/02/2010, à 18:03)

#3 Le 22/02/2010, à 01:33

AnsuzPeorth

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

Bjr,
Un truc du genre (pas testé)

find Repertoire_Source/ -name "*.txt" | while read ligne
do
[ -e "/Repertoire_destination/${ligne##*/}" ] && continue
cp "$ligne" /Repertoire_destination/
done

Si le fichier existe dans Repertoire_destination, il ne sera pas copié.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#4 Le 22/02/2010, à 10:48

Hizoka

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

while read ligne
do
[ -e "/Repertoire_destination/${ligne##*/}" ] && continue
cp "$ligne" /Repertoire_destination/
done < <(find Repertoire_Source/ -name "*.txt")

même code que ansuz mais sans le pipe tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 22/02/2010, à 19:07

sputnick

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

find ./Repertoire_Source -iname '*.txt' -type f -print0 | xargs -I% -0 cp --no-clobber % Repertoire_destination

Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver. Jacques Prévert
https://sputnick.fr

Hors ligne

#6 Le 23/02/2010, à 18:47

xyzers

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

Pour commencer merci pour les différentes méthodes que vous me proposez. 
Et désolé de ce retour tardif de ma part, mais je rencontre un souci, et pour moi c'est un autre ordre à mon avis.
Je m'explique, pour commencer j'ai utilisé cette méthode :

while read ligne
do
[ -e "/Repertoire_destination/${ligne##*/}" ] && continue
cp "$ligne" /Repertoire_destination/
done < <(find Repertoire_Source/ -name "*.txt")

que j'ai adapté à mes besoins :

#!/bin/sh

while read ligne
do
[ -e "/media/FreenasPartage/Divx/Anime/${ligne##*/}" ] && continue
cp "$ligne" /media/FreenasPartage/Divx/Anime/
done < <(find /media/donnees/Documents/downloads/complete/Anime/ -name "*.avi")

De plus petit détail mon répertoire source, c'est un disque partagé sur un NAS sur FreeNas et je ne crois pas que cela influe sur mon problème (je peu me tromper).

De plus je suis sur Xubuntu 9.10 AMD64.

Mon souci est que la copie se passe bien pour le 1er fichier mais ensuite cela "bloque" en cours pour la copie suivante. Et mon Xubuntu devient très long (lenteur de rafraichissement de Firefox et de Nautilus notamment ). J'ai eu aussi hier soir un problème du même ordre en faisant un transfert ftp vers ma freebox HD, c'est a dire le 1er fichier transfert ok, mais le suivant c'est arrêté à 40 Mo au lieu de 700mo.

Je ne sais quoi faire ? Et je ne vois pas d'où viens le problème...

Dernière modification par xyzers (Le 23/02/2010, à 18:50)

Hors ligne

#7 Le 23/02/2010, à 21:03

Hizoka

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

essaie la solution de sputnik, tu peux lui faire confiance les yeux fermes !


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#8 Le 23/02/2010, à 21:31

xyzers

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

J'avance un peu.
Avant pour constater l'état d'avancement de ma copie j'ouvrais Thunar et/ou Nautilus. maintenant j'ai refait ma copie mais en lançant mon script (Anime.sh) comme ci-dessous :

/bin/bash -x -v Anime.sh

Et je n'est plus de problème...Bizarre...

essaie la solution de sputnik, tu peux lui faire confiance les yeux fermes !

Ou puis-je trouver plus info sur sputnik ?

Hors ligne

#9 Le 23/02/2010, à 22:09

Hizoka

Re : Copie le contenu d'un répertoire et sous rép sans les sous rép

Sptunik est le nom d'une personne ici smile
regarde le post #5

un simple bash -x -v Anime.sh suffit (c'est pourquoi faire le -x ?)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne