Mandriva

================== =========================================================== =================================================================== CETTE PAGE - SOUS UNE FORME RÉVISÉE - A ÉTÉ TRANSFÉRÉE À L'ADRESSE SUIVANTE :

http://wiki.mandriva.com/fr/D%C3%A9placement_de_fichiers_ou_de_r%C3%A9pertoires

NOUS VOUS CONSEILLONS DE VOUS Y RENDRE… ==================================================================

Comment déplacer fichiers et répertoires

Copier et déplacer, au fond, ce sont deux opérations qui d'un côté se ressemblent et de l'autre… ne se ressemblent pas : dans les deux cas un nouvel exemplaire d'un fichier ou d'un répertoire est créé en un certain emplacement de votre système de fichiers, mais dans le cas de la copie le fichier d'origine est conservé et vous vous retrouvez avec deux exemplaires distincts, et désormais autonomes, d'un même fichier d'origine, tandis que dans le cas du déplacement le fichier d'origine disparaît complètement et définitivement.

Nous allons voir dans ce qui suit que les commandes qui correspondent à ces deux opérations, 'cp' et 'mv', présentent elles aussi de nombreuses ressemblance et quelques différences.

Voyons d'abord quelques exemples d'emplois très simples de la commande 'mv'.

Pour déplacer, disons, le fichier 'piment' dans le répertoire condiments/, dans votre répertoire de travail, il suffit de taper ceci :

mv piment condiments/

et pour déplacer d'un coup le fichier 'sariette' et le fichier 'basilic' dans le même répertoire, ce serait :

mv sariette basilic condiments/

pour déplacer tout le contenu de votre répertoire de travail dans le répertoire /home/partage/ :

mv *  /home/partage/

Notez que comme dans le cas de la commande 'cp' le répertoire destination doit être fourni en dernier. Comme la commande 'cp', la commande 'mv' peut opérer sur un ou plusieurs fichiers d'origine, qui peuvent être représentés en utilisant les diverses ressources de l'expansion des noms de fichier.

Le déplacement est naturellement 'conservateur' : toutes les propriétés du fichier déplacé sont conservées au cours de l'opération. En particulier :

  • 1. les répertoires éventuellement inclus dans votre sélection initiale sont recopiés avec leur contenu
  • 2. les fichiers ou répertoires conservent leur horodatage (date et heure) d'origine
  • 3. le propriétaire et le groupe propriétaire du fichier ou du répertoire copié sont conservés
  • 4. les permissions sont maintenues
  • 5. les liens symboliques restent des liens symboliques (et ils conservent l'adresse vers laquelle ils pointaient, qu'elle soit absolue ou relative)
  • 6. les liens en dur passés en argument restent liés.
Aucune option n'est nécessaire pour imposer à 'mv' le respect des contraintes 1 à 6. Une différence avec la commande 'cp' est que pour obtenir le même résultat avec 'cp' vous devez utiliser l'option -a ou un ensemble d'options équivalentes. Si vous voulez utiliser correctement ces deux commandes vous devriez mémoriser cette différence de comportement.

La syntaxe et la sémantique de 'mv' sont par ailleurs très proches de celles de 'cp', une fois comprise la différence importante qui les sépare, on peut sans peine renvoyer à la documentation de 'cp' pour faire comprendre le fonctionnement de 'mv'.

La copie de répertoire fonctionne comme décrit pour 'cp' à la page Copie de répertoire ainsi que dans Copie de répertoire - suite.

Pour éviter d'écraser inconsidérément des fichiers on peut faire usage avec 'mv' comme avec 'cp' de l'option -i. Voir là-dessus Copier sans écraser. Un alias remplaçant 'mv' par 'mv -i' existe dans la Mandriva 2006, tout comme il existe un alias du même genre pour la commande 'cp', voir aussi là-dessus le lien précédent.

L'option -u de 'mv' ('u' pour l'anglais '-update' = 'mise à jour') permet de réserver l'écrasement au cas des fichiers de la source dont le nom est identique à un fichier de la destination mais comporte une date de modification postérieure à celle du fichier de destination. Seuls les fichiers plus anciens seront donc écrasés dans ce cas. Il est aussi possible d'éviter tout écrasement, voir Qu'on se le dise : pas d'écrasement !.

Comme 'cp' encore, 'mv' peut prendre comme 'destination' (dernier argument) non un nom de répertoire mais un nom de fichier. Dans ce cas elle permettra de renommer le fichier (éventuellement en créant une sauvegarde), voir là-dessus la page CP-6.

Une petite 'colle' pour terminer... Si vous lu avec soin cette page, vous devriez pouvoir dire s'il y a, ou s'il peut y avoir, des différences entre les résultats obtenus après exécution de ces trois lignes de commande. Pour la signification du point-virgule (';') voir Enchaînement de commandes. 'rm -Rf *' supprime tous les fichiers et répertoires du répertoire courant sans rien vous demander (attention à ne pas utiliser à la légère...).
1er cas
cp * /home/vieux/ ; rm -Rf *
2ème cas
mv * /home/vieux/
3ème cas
cp -a * /home/vieux/ ; rm -Rf *

Autres ressources

man mv
info mv

Index de la section - Index de la Base de Connaissances


Auteur ptyxs (mars 2006)
Legal: This page is covered by the GNU Free Documentation License. Standard disclaimers of warranty apply. Copyright LSTB and Mandrakesoft.
KB - Move
Version 1.21 modifié par ptyxs le 26/08/2007 à 10:48

 


en fr

RSS

Créateur: ptyxs le 2006/03/09 17:10
(c) Mandriva 2007
18888888