Problem avec la commande cp - Installation - Linux et OS Alternatifs
Marsh Posté le 18-07-2003 à 17:18:53
Le Ouinhin Pervers a écrit : |
Mal alors
Tu as oublier l'option -x :
-x, --one-file-system
stay on this file system
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 !
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
Marsh Posté le 19-07-2003 à 16:06:09
Dark_Schneider a écrit : tu peux pas. |
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à !
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 !).
----------------------------------
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
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.
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 ?
Marsh Posté le 20-07-2003 à 01:29:08
budo-ka a écrit : J'ai un petit doute ; |
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 :
|
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 ?
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 )
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 ...