Comment puis-je copier des fichiers dans un dossier dans un autre dossier sur Linux Terminal

Comment puis-je copier des fichiers dans un dossier dans un autre dossier sur Linux Terminal
Lorsque vous avez besoin de copier le contenu d'un répertoire dans un autre, dans le cas de Linux, il existe de nombreux outils à votre disposition. Lequel utiliser? Cela dépend de la situation et des préférences personnelles. Dans cet article, nous allons voir des moyens de copier le contenu des fichiers d'un dossier à un autre dans le terminal. Il comportera certains des choix populaires pour différentes situations.

Copie de fichiers dans le terminal

La copie du contenu d'un répertoire dans un autre est une tâche très simple. Cependant, vous avez beaucoup d'options pour le faire. Linux est doté de nombreux outils pour manipuler des fichiers et des répertoires à travers diverses actions.

Toutes les étapes sont démontrées sur Ubuntu 18.04.1. Au début, créons une poignée de fichiers factice pour travailler avec.

$ mkdir -v dir_a

Maintenant, créons les fichiers factice en utilisant le toucher.

$ touch dummy 1… 10

Créons un autre dossier dans dir_a avec une poignée de fichiers factice.

$ mkdir -v dir_b
$ touch dummy 1… 10

Maintenant, toute la structure du répertoire dir_a ressemble à ceci.

$ arbre dir_a

Commande CP

Le CP La commande est, de loin, l'outil le plus courant pour copier des fichiers. C'est un outil qui vient par défaut avec n'importe quel système Linux. La copie des fichiers et des répertoires est le seul but de CP. Il prend en charge une large gamme de fonctionnalités.

C'est la structure de base du CP commande.

$ cp

Par exemple, faisons une copie du mannequin1 dossier avec le nom dummy1_copy.

$ cp dummy1 dummy1_copy

Maintenant, essayons de copier plusieurs fichiers à la fois. Pour une telle opération, CP exige que la destination soit un répertoire. Ici, j'utiliserai l'expression de la carte générique pour saisir tout le factice fichiers et les mettre dans le ~ / Téléchargements annuaire.

$ cp mandem

Que diriez-vous de copier un répertoire?

$ cp -vr dir_a dir_a_copy

Ici, nous avons utilisé deux drapeaux différents. Allons-y rapidement.

  • -R: représente un récursif copier (y compris tout fichier caché)). Indicateur incontournable si la copie implique un répertoire entier ou plus.
  • -V: représente verbeux. L'outil CP sortira chaque action qu'il effectue.

Vous voulez suivre les liens symboliques? Ajouter le drapeau «-l».

$ cp -lvr

Disons que le répertoire de destination a déjà un fichier avec le même nom. Si vous souhaitez éviter l'écrasement, utilisez le drapeau «-n». Cela garantira qu'en cas de conflit, CP ne remplacera pas le fichier.

$ cp -nv

Si vous effectuez une action de copie / coller sensible, il vaut mieux avoir le meilleur contrôle sur ce qui se passe, à droite? Dans un tel cas, utilisez le drapeau «-i». Il signifie un mode interactif où CP demandera une confirmation à chaque fois qu'un conflit survient.

$ cp -i

Si vous êtes plus intéressé, la page de l'homme est toujours l'une des meilleures documents. En savoir plus sur CP.

$ man cp

Commande MV

L'outil MV est similaire à l'outil CP. Cependant, au lieu de copier, MV déplace les fichiers et les répertoires. Par rapport à CP, c'est plus simple.

La structure de commande de MV est similaire à CP.

$ mv

Pour déplacer le contenu de dir_a pour dir_a_copy, Exécutez la commande suivante.

$ mv -v dir_a / dir_a_copy

Ici, le drapeau «-v» est pour verbeux mode. Si vous souhaitez déplacer uniquement le contenu de DIR_A, utilisez le suivant à la place. Dans ce cas, le répertoire cible doit exister à l'avance.

$ mv -v dir_a / * dir_a_copy

L'outil MV n'a pas grand-chose à travailler. Pour toutes les options disponibles, consultez la page de l'homme.

$ man mv

Commande RSYNC

C'est l'un des outils les plus populaires et les plus puissants pour la copie des fichiers, utilisé principalement pour la sauvegarde. Il contient la possibilité de copier des fichiers sur une connexion distante. Contrairement à CP et MV, il est également livré avec une tonne d'options de copie de fichiers avancées qui offrent la plus grande personnalisation de son comportement.

RSYNC est principalement célèbre pour son algorithme de transfert delta qui réduit considérablement la quantité de données qui doivent être échangées. Dans le cas de la synchronisation à distance, cela économise beaucoup de bande passante.

RSYNC n'est généralement pas préinstallé dans aucune distribution Linux. Cependant, en raison de sa popularité, il est maintenant disponible sur toutes les principales distros Linux. Utilisez des PKG.org pour découvrir le package RSync pour votre distribution. En supposant que vous avez installé RSYNC, commençons.

Premièrement, la structure de commande de base de RSYNC. C'est assez similaire à CP.

$ RSYNC

Avant de démarrer, voici une poignée d'arguments RSYNC populaires.

  • -V: Mode verbeux, sort toute l'action effectuée sur l'écran de la console.
  • -vv: Mode verbeux avec plus de détails
  • -r: Mode récursif, doit être présent si la copie des répertoires
  • -z: Comprimer les données
  • -un: Données d'archives
  • -n: Run sèche, devrait être exécuté en combinaison avec le mode verbeux. Publie simplement les actions si la commande devait s'exécuter pour de vrai
  • -supprimer: Supprimer le (s) fichier (s) et les répertoires sur le répertoire de destination si le répertoire source ne les contienne plus
  • -no-whole-file: Oblige RSYNC à utiliser son algorithme de transmission delta, quoi qu'il arrive. Utile dans les scénarios où vous devez vous assurer le moins de données d'écriture.
  • -enlever le fichier de source: Supprimer les fichiers source après la copie.

Voyons-les en action. Tout d'abord, la copie du répertoire. Exécutez la commande suivante.

$ RSync -vr dir_a / dir_a_copy

Pour plus de sortie détaillée, utilisons le drapeau «-vv».

$ RSync -vv -r dir_a / dir_a_copy

Maintenant, vérifions la partie cool de RSync. Nous avons discuté de la façon dont RSYNC copie intelligemment uniquement les fichiers modifiés, enregistrant la bande passante et l'écriture de disque. Il est temps de le vérifier en action. Dans cet exemple, l'action sera effectuée dans le dir_a annuaire.

$ RSync -vv --no-whole-file mandeming * dir_b /

Malgré la transmission de Delta activée, RSYNC peut ne pas les appliquer lorsque vous effectuez un transfert de données local.

Maintenant, vérifions la fonction de course sèche. Avant d'exécuter une commande RSYNC pour de vrai, il est toujours important que vous le testiez au préalable. C'est là que la course sèche entre en jeu. RSYNC sortira ce qui se passera si la commande devait s'exécuter.

$ RSync -anvr dir_a / dir_a_copy

RSYNC peut également fonctionner avec des répertoires distants, pas de problème. Tout ce dont il a besoin est une connexion SSH appropriée avec les touches SSH configurées.

$ RSYNC

Vous voulez effectuer une opération de déplacement? Pour mettre cela dans le point de vue de RSYNC, RSync copiera le contenu du répertoire source, puis supprimera le contenu source.

$ RSYNC -V --Remove-Source-Files

Découvrez le résultat de l'opération.

$ arbre dir_a
$ arbre dir_a_copy

Dernières pensées

Le CP et le RSYNC sont les outils les plus courants que vous pouvez utiliser pour copier des fichiers dans un dossier sur le terminal Linux. Les deux sont également très bons pour les scripts. Assurez-vous simplement de tester les fonctions avant la mise en œuvre.

Apprécier!