Comment déplacer des fichiers et des dossiers dans la ligne de commande Linux


  • Français


  • Couper, copier et coller font partie de la vie informatique quotidienne.

    Dans le chapitre précédent, vous avez appris à copier des fichiers et des dossiers (répertoires) dans le terminal.

    Dans cette partie de la série Terminal Basics, vous découvrirez l’opération de copier-coller (déplacement) dans le terminal Linux.

    Déplacer ou couper-coller ?

    Bien! Couper-coller n’est pas le terme technique correct ici. Cela s’appelle déplacer des fichiers (et des dossiers).

    Étant donné que vous êtes nouveau sur la ligne de commande, vous pouvez trouver le terme « déplacer » déroutant.

    Lorsque vous copiez un fichier vers un autre emplacement à l’aide de la commande cd, le fichier source reste au même emplacement.

    Lorsque vous déplacez un fichier vers un autre emplacement en utilisant la commande mvle fichier source ne reste plus à l’emplacement d’origine.

    Il s’agit de la même opération de copier-coller (Ctrl+X et Ctrl+V) que vous effectuez dans un explorateur de fichiers graphique.

    📋

    Fondamentalement, le déplacement de fichiers dans la ligne de commande peut être considéré comme un copier-coller dans un environnement graphique.

    Déplacer des fichiers

    Linux a une commande mv dédiée (abréviation de move) pour déplacer des fichiers et des répertoires vers d’autres emplacements.

    Et utiliser la commande mv est assez simple :

    mv source_file destination_directory

    Le rôle du chemin vient jouer ici aussi. Vous pouvez utiliser le chemin absolu ou relatif. Celui qui convient à votre besoin.

    Voyons cela avec un exemple. Vous devriez vous entraîner en reproduisant les exemples de scénarios sur votre système.

    Voici la structure du répertoire dans l’exemple :

    [email protected]:~/moving_files$ tree
    .
    ├── dir1
    │   ├── file_2
    │   └── file_3
    ├── dir2
    │   └── passwd
    ├── dir3
    ├── file_1
    ├── file_2
    ├── file_3
    ├── file_4
    ├── passwd
    └── services
    
    3 directories, 9 files
    

    Maintenant, disons que je veux déplacer le file_1 pour dir3.

    mv file_1 dir3
    Exemple de déplacement de fichiers sous Linux à l'aide de la commande mv

    Déplacement de plusieurs fichiers

    Vous pouvez déplacer plusieurs fichiers vers un autre emplacement dans la même commande mv :

    mv file1 file2 fileN destination_directory

    Continuons notre exemple de scénario pour déplacer plusieurs fichiers.

    mv file_2 file_3 file_4 dir3
    Exemple de déplacement de plusieurs fichiers sous Linux

    🖥️

    Déplacez les fichiers vers le répertoire actuel à partir de dir3. Nous en avons besoin dans les exemples suivants.

    Déplacer des fichiers avec prudence

    Si la destination contient déjà des fichiers portant le même nom, les fichiers de destination seront immédiatement remplacés. Parfois, vous ne voudrez pas cela.

    Comme la commande cp, la commande mv a également un mode interactif avec l’option -i.

    Et le but est le même. Demandez confirmation avant de remplacer les fichiers à destination.

    [email protected]:~/moving_files$ mv -i file_3 dir1
    mv: overwrite 'dir1/file_3'?

    Vous pouvez appuyer sur N pour refuser le remplacement et sur Y ou Entrée pour remplacer le fichier de destination.

    Exemple de déplacement interactif sous Linux

    Déplacer mais seulement mettre à jour

    La commande mv est fournie avec des options spéciales. L’un d’eux est l’option de mise à jour -u.

    Avec cela, le fichier de destination ne sera remplacé que si le fichier déplacé est plus récent que lui.

    mv -u file_name destination_directory

    Voici un exemple. file_2 a été modifié à 10h39 et file_3 a été modifié à 10h06.

    [email protected]:~/moving_files$ ls -l file_2 file_3
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:39 file_2
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:06 file_3
    

    Dans le répertoire de destination dir1, file_2 a été modifié pour la dernière fois à 10h37 et file_3 a été modifié à 10h39.

    [email protected]:~/moving_files$ ls -l dir1
    total 0
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:37 file_2
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:39 file_3

    En d’autres termes, dans le répertoire de destination, le fichier_2 est plus ancien et le fichier_3 est plus récent que ceux déplacés.

    Cela signifie également que file_3 ne sera pas déplacé tandis que file_2 sera mis à jour. Vous pouvez le vérifier avec les horodatages des fichiers dans le répertoire de destination après avoir exécuté la commande mv.

    [email protected]:~/moving_files$ mv -u file_2 file_3 dir1
    [email protected]:~/moving_files$ ls -l dir1
    total 0
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:39 file_2
    -rw-rw-r-- 1 abhishek abhishek 0 Apr  4 10:39 file_3
    [email protected]:~/moving_files$ date
    Tue Apr  4 10:41:16 AM IST 2023
    [email protected]:~/moving_files$ 

    Comme vous pouvez le voir, la commande de déplacement a été exécutée à 10h41 et seul l’horodatage de file_2 a été modifié.

    Utilisation de la commande de déplacement avec l'option de mise à jour

    💡

    Vous pouvez également utiliser l’option de sauvegarde -b. Si le fichier de destination est remplacé, il créera automatiquement une sauvegarde avec le filename~ modèle.

    Dépannage : la cible n’est pas un répertoire

    Si vous déplacez plusieurs fichiers, le dernier argument doit être un répertoire. Sinon, vous rencontrerez cette erreur :

    target is not a directory

    Ici, je crée un fichier qui se nomme dir. Le nom ressemble à un répertoire, mais c’est un fichier. Et quand j’essaie d’y déplacer plusieurs fichiers, l’erreur évidente est là :

    La cible de gestion n'est pas une erreur de répertoire sous Linux

    Mais que se passe-t-il si vous déplacez un seul fichier vers un autre fichier ? Dans ce cas, le fichier cible est remplacé par le contenu du fichier source tandis que le fichier source est renommé en tant que fichier cible. Plus d’informations à ce sujet dans les sections suivantes.

    Répertoires mobiles

    Jusqu’à présent, vous avez tout vu sur le déplacement de fichiers. Que diriez-vous de déplacer des répertoires?

    Les commandes cp et rm utilisaient l’option récursive -r pour copier et supprimer des dossiers respectivement.

    Cependant, il n’y a pas une telle exigence pour la commande mv. Vous pouvez utiliser la commande mv telle quelle pour déplacer des répertoires.

    mv dir target_directory

    Voici un exemple où je déplace le dir2 répertoire à dir3. Et comme vous pouvez le voir, dir2 avec son contenu est déplacé vers dir3.

    Déplacer des dossiers en ligne de commande Linux

    Vous pouvez déplacer plusieurs répertoires de la même manière.

    Renommer des fichiers et des répertoires

    Si vous souhaitez renommer un fichier ou un répertoire, vous pouvez utiliser la même commande mv.

    mv filename new_name_in_same_or_new_location

    Supposons que vous souhaitiez renommer un fichier au même emplacement. Voici un exemple où je renomme file_1 pour file_one dans le même répertoire.

    Renommer les fichiers avec la commande mv

    Vous pouvez également déplacer et renommer les fichiers. Il vous suffit de fournir le chemin du répertoire et le nom du fichier de destination. Ici, je renomme services fichier à my_services tout en le déplaçant vers dir3.

    [email protected]:~/moving_files$ ls
    dir  dir1  dir3  file_2  file_3  file_one  passwd  services
    [email protected]:~/moving_files$ mv services dir3/my_services
    [email protected]:~/moving_files$ ls dir3
    dir2  my_services
    

    📋

    Vous ne pouvez pas renommer plusieurs fichiers directement avec la commande mv. Vous devez le combiner avec d’autres commandes comme find etc.

    Testez vos connaissances

    Il est temps de mettre en pratique ce que vous venez d’apprendre.

    Créez un nouveau dossier pour pratiquer l’exercice. Ici, créez une structure de répertoires comme celle-ci :

    .
    ├── dir1
    ├── dir2
    │   ├── dir21
    │   ├── dir22
    │   └── dir23
    └── dir3
    

    Copiez le fichier /etc/passwd dans le répertoire courant. Maintenant, renommez-le secrets.

    Créez trois nouveaux fichiers nommés file_1, file_2 et file_3. Déplacez tous les fichiers vers dir22.

    Déplacez maintenant le dir22 répertoire à dir3.

    Supprimer tout le contenu de dir2 maintenant.

    Dans l’avant-dernier chapitre de la série Terminal Basics, vous apprendrez à modifier des fichiers dans le terminal. Restez à l’écoute.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code