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à !
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] [:iboll]](https://forum-images.hardware.fr/images/perso/iboll.gif)
Message édité par s-gaia le 19-07-2003 à 16:12:02