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.
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.
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!