#1 Le 23/12/2007, à 01:39
- herberts
[RESOLU] problème de commande pour débutant
Bonsoir à tous. Je ne suis pas certain d'être dans la bonne section du forum, mais dans le doute...
Il s'agit sans doute d'un problème facile à résoudre, mais je connais pas la commande pour faire ce que je veux, et n'ai pas trouvé la solution sur le forum :
Je voudrais copier tous les fichiers contenus dans un dossier et ses sous-dossiers vers un seul dossier, mais sans reproduire l'arborescence, que tous les fichiers copiés soit à la racine du nouveau dossier.
J'ai essayé un
cp -R dossier_source/* /dossier_cible
mais là il me recopie l'arborescence
et avec
cp -R dossier_source/*.* /dossier_cible
mais là le terminal me retourne
cp: ne peut évaluer `dossier_source/*.*': Aucun fichier ou répertoire de ce type
Le plus rageant, c'est que j'avais réussi à le faire il y a quelques temps, mais impossible de retrouver comment. Si vous avez une idée...
Dernière modification par herberts (Le 23/12/2007, à 02:38)
Hors ligne
#2 Le 23/12/2007, à 01:57
- best_friend_fr
Re : [RESOLU] problème de commande pour débutant
Salut,
essaye un truc du genre
#!/bin/bash
dossier=$1
for contenu in $dossier/*;
do
if [ -d $contenu ];
then
$0 $contenu $2;
fi;
if [ -f $contenu ];
then
cp $contenu $2/
fi;
done;
ca s'appelle par
./script src dest
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#3 Le 23/12/2007, à 02:11
- pascal50
Re : [RESOLU] problème de commande pour débutant
Je viens d'essayer ça, ça a l'air de marcher
find rep_source -type f -exec cp '{}' rep_cible/. \;
Le plus rageant, c'est que j'avais réussi à le faire il y a quelques temps, mais impossible de retrouver comment.
Avec la commande cp seule ?
Hors ligne
#4 Le 23/12/2007, à 02:30
- herberts
Re : [RESOLU] problème de commande pour débutant
Best_friend, ton script fais ce que je voulais donc déjà merci, même s'il ne prends pas les fichiers avec un espace dans le nom (ce qui est malheureusement le cas de la plupart )
Pascal_50, Je vais essayer de suite ta solution
Et il me semble que c'était avec la commande cp oui, avec quelques options derrière, mais je n'ai jamais touché au scripts pour l'instant. Il va falloir que je m'y mette d'ailleurs, c'est quand même un outil puissant
Et encore merci
Dernière modification par herberts (Le 23/12/2007, à 03:03)
Hors ligne
#5 Le 23/12/2007, à 02:37
- herberts
Re : [RESOLU] problème de commande pour débutant
Bon, la commande que tu donnes
find rep_source -type f -exec cp '{}' rep_cible/. \;
marche nickel
Merci beaucoup
Et si tu as encore deux minutes a m'accorder, pour ma "culture perso", dans cette commande, à quoi sert la fin
/. \;
Dernière modification par herberts (Le 23/12/2007, à 02:38)
Hors ligne
#6 Le 23/12/2007, à 02:51
- best_friend_fr
Re : [RESOLU] problème de commande pour débutant
Pour les fichier avec des espaces, il faut metre des "" autour des $contenu.
sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr
Hors ligne
#7 Le 23/12/2007, à 02:53
- pascal50
Re : [RESOLU] problème de commande pour débutant
Pour le "/.", je suis sur de rien. tu peux essayer sans.
Pour le "\;" il fait partie de la syntaxe de l'option -exec du find (man find).
Si tu as installé un serveur apache, il doit y avoir un paquet man2html pour consulter les pages de manuel dans le navigateur (c'est plus sympa à lire).
Hors ligne
#8 Le 23/12/2007, à 03:04
- herberts
Re : [RESOLU] problème de commande pour débutant
Merci à vous deux
Hors ligne