Copier des fichiers et des répertoires dans la ligne de commande Linux


  • Français


  • La copie de fichiers est l’une des tâches les plus élémentaires mais cruciales que vous effectuerez régulièrement.

    Linux a une commande cp dédiée pour copier à la fois les fichiers et les répertoires (dossiers).

    Dans cette partie de la série Terminal Basics, vous apprendrez à copier des fichiers et des dossiers dans le terminal.

    Continuons avec le septième chapitre de la série.

    Copier des fichiers en ligne de commande Linux

    Permettez-moi de vous montrer quelques exemples de copie de fichiers.

    Copier un fichier dans un autre répertoire

    Pour copier un fichier dans un autre répertoire, il vous suffit de suivre la syntaxe de commande indiquée :

    cp Source_file Destination_directory

    Par exemple, ici, j’ai copié un fichier nommé Hello.txt au répertoire nommé Tux:

    copier le fichier dans un autre répertoire en ligne de commande Linux

    Et comme vous pouvez le voir, le fichier a été copié avec succès dans le répertoire Tux.

    Copiez le fichier mais renommez-le

    Vous pouvez choisir de renommer le fichier lors de sa copie. Donnez simplement un nom différent au “fichier cible”.

    cp Source_file Renamed_file

    Pour référence, ici, j’ai copié un fichier nommé Hello.txt dans le même répertoire en le renommant Renamed_Hello.txt:

    renommer un fichier lors de la copie dans un même répertoire dans le terminal linux

    Pourquoi ferais-tu ça? Supposons que vous deviez modifier un fichier de configuration. Une bonne pratique consiste à faire une sauvegarde du fichier de configuration au même emplacement avant de le modifier. De cette façon, vous pouvez revenir à l’ancienne configuration si les choses ne se passent pas comme prévu.

    Copier plusieurs fichiers vers un autre emplacement

    Pour copier plusieurs fichiers dans un autre répertoire, exécutez la commande de la manière suivante :

    cp File1 File2 File3 FileN Target_directory

    Ici, je copie plusieurs fichiers vers un nouvel emplacement.

    copier plusieurs fichiers à l'aide de la commande cp sous Linux

    📋

    Lorsque vous copiez plusieurs fichiers, il n’est pas possible de les renommer uniquement avec la commande cp.

    Traiter les fichiers en double lors de la copie

    Par défaut, la commande cp remplacera le fichier si un fichier portant le même nom existe dans le répertoire cible.

    Pour éviter tout dépassement, vous pouvez utiliser le -n option avec la commande cp, et elle ne remplacera pas les fichiers existants :

    cp -n Source_File Destination_directory

    Par exemple, ici, j’ai essayé de copier deux fichiers qui étaient déjà là dans mon répertoire ciblé et utilisés -v option pour montrer ce qui est fait par la commande :

    cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux
    comment ne pas remplacer les fichiers lors de la copie sous Linux à l'aide de la commande cp

    Copier des fichiers de manière interactive

    Mais qu’en est-il lorsque vous souhaitez remplacer certains fichiers, alors que certains doivent rester intacts ?

    Eh bien, vous pouvez utiliser la commande cp en mode interactif en utilisant le -i option, et il vous demandera à chaque fois si le fichier doit être remplacé ou non :

    cp -i Source_file Destination_directory
    comment utiliser la commande cp en mode interactif

    🖥️

    Pratiquez vous-même tous les exemples mentionnés ci-dessus. Vous savez déjà comment créer des fichiers et des dossiers, alors recréez tout.

    Copier les répertoires en ligne de commande Linux

    Il existe une commande mkdir pour créer de nouveaux répertoires, rmdir pour supprimer des répertoires (vides). Mais il n’y a pas de commande cpdir pour copier des répertoires.

    Vous devrez utiliser la même commande cp mais avec l’option récursive -r pour copier un répertoire avec tout son contenu vers un autre emplacement :

    cp -r Source_dir Target_dir

    Par exemple, ici, j’ai copié un répertoire nommé IF pour LHB:

    comment copier un répertoire en ligne de commande linux

    Mais il a copié tout le répertoire 🤨

    Alors, que faites-vous lorsque vous souhaitez uniquement copier le contenu du répertoire, pas le répertoire lui-même ?

    Voici ce que vous pouvez faire :

    Copier uniquement le contenu d’un répertoire (pas le répertoire)

    Pour copier uniquement le contenu du répertoire, pas le répertoire lui-même, vous ajoutez /. à la fin du nom du répertoire source :

    cp -r Source_directory/. Destination_directory

    Ici, je veux copier le contenu d’un répertoire nommé IF qui contient les trois fichiers suivants :

    vérifier le contenu du fichier du répertoire à l'aide de la commande tree

    Et je vais exécuter la commande suivante pour copier le contenu du fichier du IF répertoire à LHB:

    cp -r IF/. LHB
    copier le contenu du fichier du répertoire et non un répertoire lui-même dans la ligne de commande linux

    Vous pouvez également utiliser Source_directory/* ici.

    Copier plusieurs répertoires

    Pour copier plusieurs répertoires, vous devrez exécuter la commande de la manière suivante :

    cp -r Dir1 Dir2 Dir3 DirN Destiniation_directory

    Par exemple, ici, j’ai copié deux répertoires nommés IF et LU au LHB:

    cp -r IF LU ~/LHB
    copier plusieurs répertoires à l'aide de la commande cp dans la ligne de commande linux

    Vous pouvez faire la même chose lorsque vous souhaitez copier des fichiers à partir de plusieurs répertoires mais pas du répertoire lui-même :

    cp -r Dir1/. Dir2/. Dir3/. DirN/. Destination_directory
    copiez les fichiers de plusieurs répertoires mais pas des répertoires eux-mêmes à l'aide de la commande cp

    🖥️

    Vous pouvez également renommer les répertoires de la même manière que vous avez renommé les fichiers.

    Testez vos connaissances

    Voyons maintenant dans quelle mesure vous vous souvenez des leçons apprises jusqu’à présent.

    • Créez un répertoire appelé copy_practice
    • Copiez le fichier /etc/services dans ce dossier nouvellement créé
    • Créez un dossier nommé secrets sous ce répertoire et copiez-y les fichiers /etc/passwd et /etc/services
    • Copiez le fichier services dans copy_practice dans le dossier secrets mais ne l’écrasez pas
    • Copiez le dossier secrets dans votre répertoire personnel
    • Supprimez les répertoires secrets et copy_practice

    Cela vous donnerait un peu de pratique.

    Ça se passe bien jusqu’ici. Vous avez appris pas mal de choses. Dans le chapitre suivant, vous verrez comment déplacer des fichiers et des dossiers avec la commande mv.

    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