Problem avec la commande cp

Problem avec la commande cp - Installation - Linux et OS Alternatifs

Marsh Posté le 18-07-2003 à 17:09:57    

Bonjour !
 
J'ai recu mon nouveau disque dur aujourd'hui, et je souhaite transférer mon système d'un disque à l'autre.
 
Pour cela j'utilise cp -av / /mnt/WD
 
Mais comment dire à cp de ne pas copier certains repertoires (/mnt/nt par exemple), quels arguments faut-il lui spécifier ?
 
J'ai lu le man ...

Reply

Marsh Posté le 18-07-2003 à 17:09:57   

Reply

Marsh Posté le 18-07-2003 à 17:15:37    

La commande dd serait peut être plus appropriée.
 
CHaiCA

Reply

Marsh Posté le 18-07-2003 à 17:18:53    

Le Ouinhin Pervers a écrit :


J'ai lu le man ...


Mal alors ;)
 
Tu as oublier l'option -x :
 
  -x, --one-file-system
              stay on this file system
 

Reply

Marsh Posté le 18-07-2003 à 17:23:24    

J'avais mal lu.
 
Je cherchais un truc du genre --except machin ...
 
Merci en tout cas !

Reply

Marsh Posté le 18-07-2003 à 18:00:15    

tu peux pas.
 
fais plutôt une archive tar, car tar supporte ce type d'option, et décompresse ensuite l'archive


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 19-07-2003 à 16:06:09    

Dark_Schneider a écrit :

tu peux pas.
 
fais plutôt une archive tar, car tar supporte ce type d'option, et décompresse ensuite l'archive


 
Je rejoins tout à fait Dark_Schneider qui te conseille de passer par tar !
 
avec une commande comme cp ou mv vers une autre partition, tu vas perdre toutes les infos de tes fichiers concernant les dates des fichiers, leur propriétaire et leur groupe, ainsi que les liens symboliques et physiques.  
 
Voici un copier-coller de la doc très bien faite de Christian CASTEYDE qui pourrait t'intéresser :
 
 
-------------------------------
Un exemple pratique est le déplacement de toute une arborescence de fichiers d'un système de fichiers à un autre. Vous ne pourrez pas y parvenir à l'aide de la commande mv, car celle-ci ne fait que modifier la structure du système de fichiers pour déplacer les fichiers et les répertoires, elle ne peut donc pas fonctionner avec deux systèmes de fichiers. Vous ne pouvez pas non plus utiliser la commande cp, car celle-ci ne prendra pas en compte les dates des fichiers, leur propriétaire et leur groupe, ainsi que les liens symboliques et physiques. Il faut donc impérativement utiliser un programme d'archivage. La méthode à suivre est donc de créer une archive temporaire, puis de se déplacer dans le répertoire destination, et enfin d'extraire l'arborescence de l'archive :  
 
 
cd source
tar cvf archive.tar *
cd destination
tar xvf source/archive.tar
rm source/archive.tar
------------------------------------------
 
Et voilà !
 
 :hello:  
 
le reste des explications permet de faire ça comme un pro. Ne te prends la tête avec ce qui suit, surtout si tu débutes mais c'est bien d'avoir le réflexe d'utiliser les tubes !
 
--------------------------------------
Malheureusement, cette technique nécessite beaucoup de place disque, puisque l'archive temporaire est stockée directement sur disque. De plus, elle est assez lente, car toutes les données à copier sont recopiées sur le disque dur, et relues ensuite, pour finalement être détruites... La vraie solution est de réaliser un tube entre les deux processus tar invoqués. Dans ce cas, le transfert se fait simplement via la mémoire vive :  
 
 
cd source
tar cv * | (cd destination ; tar xvf -)
 
 
La commande à utiliser est cette fois un peu plus compliquée, car la commande d'extraction des fichiers nécessite un changement de répertoire. Il faut donc utiliser une commande multiple du shell. Ces commandes sont constituées de plusieurs autres commandes séparées par des points virgules. La première commande effectuée ici est le changement de répertoire, et la deuxième est l'extraction par tar de l'archive qui lui est transférée par le flux d'entrée standard (représenté ici par '-'). Ces deux commandes sont mises entre parenthèses, car l'opérateur '|' du tube est prioritaire sur l'opérateur ';' de concaténation des commandes du shell. Si vous trouvez que cela est un peu compliqué, je vous l'accorde. Cependant, la commande qui utilise le tube consomme deux fois moins d'espace disque et est deux fois plus rapide que la commande qui n'en utilise pas. Je vous invite à mesurer le gain de temps sur un répertoire contenant un grand nombre de données (utilisez la commande time !).  
----------------------------------
 
 
[:iboll]


Message édité par s-gaia le 19-07-2003 à 16:12:02
Reply

Marsh Posté le 19-07-2003 à 16:06:49    

Voici l'url d'où vient ce copier-coller :
 
http://casteyde.christian.free.fr/ [...] ml#AEN2072
 
[:iboll]

Reply

Marsh Posté le 19-07-2003 à 16:54:34    

Je vais essayer ton histoire de tube s-gaia ...
Pour l'instant cela marche ...
 
EDIT: En fait presque:
 
J'utilise cette commande:
 
tar -c -v -l /home/ /proc/ /mnt/ * | (cd /mnt/WD/ ; tar xvf -)
 
pour lui dire de ne pas transmettre home proc et mnt.
Mais il n'a pas l'air de comprendre.
 
EDIT2:
Finalement je lui précisé tout les repertoires qu'il doit transférer et ca a l'air de marcher.


Message édité par Le Ouinhin Pervers le 19-07-2003 à 17:10:12
Reply

Marsh Posté le 20-07-2003 à 01:00:08    

J'ai un petit doute ;
 
Lorsque l'on fait "tar cvf archive.tar *"
la commande n'oublie t'elle pas d'y inclure dans cette archive les fichiers cachés de du répertoire courant ?


Message édité par budo-ka le 20-07-2003 à 01:00:29
Reply

Marsh Posté le 20-07-2003 à 01:29:08    

budo-ka a écrit :

J'ai un petit doute ;
 
Lorsque l'on fait "tar cvf archive.tar *"
la commande n'oublie t'elle pas d'y inclure dans cette archive les fichiers cachés de du répertoire courant ?


 
Tu as raison de douter :)
J'ai deja perdu de precieuse cle ssh a cause de cela :(
Le charactere * est interpreter par le shell et il ne prend pas en compte les fichiers caches du repertoire courant.  
Utilise plustot le point si tu veux tout prendre avec toi ;)

Code :
  1. tar cvf archive.tar .

Reply

Marsh Posté le 20-07-2003 à 01:29:08   

Reply

Marsh Posté le 20-07-2003 à 15:53:43    

Un petit prob:
 
Je suis en train d'utiliser tar en ce moment, et il me fait une archive de 13 GO alors que mon disque ne me fait que 9.79 GO !
J'ai pourtant bien spécifié les dossiers qee je voulais.
Kesako ?

Reply

Marsh Posté le 21-07-2003 à 16:25:48    

montre nous ta commande, compresses tu l'archive ?
 
de plus on peux mettre dans un fichier txt les rep/fichiers à exclure et le passer en option ( cf manpage de tar, mais l'option est soit -X , soit --exclude-from )


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed