C'est assez drôle, il existe de nombreuses façons dont les outils de ligne de commande Linux sont largement supérieurs à ceux de Windows, mais je n'ai pas trouvé d'équivalent à robocopy . Robocopy est beaucoup plus polyvalent que cp
, et je ne sais pas comment faire ce que je veux avec des outils Linux.
Un cas d'utilisation spécifique est que j'ai deux répertoires avec des fichiers principalement similaires, mais l'un a des fichiers source plus récents et un a des fichiers de contenu que l'autre répertoire n'a pas, et éventuellement des fichiers source plus récents (pour un site Web). Je veux copier les fichiers de ce dernier répertoire dans le premier, en ajoutant de nouveaux fichiers de contenu et autres, mais sans écraser les fichiers plus récents dans le répertoire de destination.
J'ai essayé de comprendre comment faire cela sous Linux pendant peut-être une demi-heure, j'ai décidé que je devrais probablement apprendre le script bash ou quelque chose pour faire ce que je voulais, puis j'ai réalisé que je pouvais simplement utiliser robocopy. J'avais également d'autres exigences. Je convertissais essentiellement un site Web Python (Django) d'un référentiel SVN en un référentiel Git, et je voulais m'assurer que je n'avais pas de modifications non validées dans SVN. Cependant, je voulais exclure conditionnellement les .svn
répertoires et les .pyc
fichiers Python compilés. La commande robocopy suivante fait exactement ce que je veux:
robocopy source destination /XO /E /XD .svn /XF *.pyc
Existe-t-il un équivalent de Robocopy sous Linux? J'ai examiné rsync
brièvement, mais il semblait que je devrais configurer un serveur rsync avant d'essayer de synchroniser les dossiers.
Réponses:
Il semble que rsync soit définitivement ce que vous recherchez. Vous n'avez pas besoin de configurer un «serveur rsync» pour copier des fichiers d'une machine à une autre. Rsync prend en charge la copie de fichiers via SFTP (SSH File Transfer) que la plupart des boîtes Linux ont déjà activées (si elles ne sont pas désactivées manuellement).
Voir les fichiers Mirror de Lifehacker sur les systèmes avec rsync pour plus de détails:
la source
scp
syntaxe essentiellement similaire pour le transfert via ssh? J'essayais en fait de transférer des fichiers sur une machine, mais c'est bon à savoir.rsync copiera les fichiers d'un répertoire vers un autre répertoire sur la même machine comme robocopy. Voici la commande rsync qui équivaut à votre commande robocopy:
Cela copiera récursivement la source vers la destination et exclura les fichiers plus anciens ainsi que les répertoires / fichiers '.svn' et '* .pyc'.
la source