C'est un peu drôle, il y a beaucoup de façons dont les outils de ligne de commande Linux sont nettement supérieurs à ceux de Windows, mais une chose à laquelle je n'ai pas trouvé d'équivalent est robocopy. Robocopy est beaucoup plus polyvalent que cp
, et je ne peux pas trouver 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 l'autre 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 du dernier répertoire dans le premier, en ajoutant de nouveaux fichiers de contenu, mais sans écraser les fichiers plus récents dans le répertoire de destination.
J'ai essayé de trouver comment faire cela sur Linux pendant peut-être une demi-heure, j'ai décidé que je devrais probablement apprendre le bash scripting ou quelque chose pour faire ce que je voulais, et puis j'ai réalisé que je pouvais simplement utiliser robocopy. J'avais aussi d'autres exigences. Je convertissais essentiellement un site web Python (Django) d'un référentiel SVN à un référentiel Git, et je voulais m'assurer de ne pas avoir de modifications non validées dans SVN. Cependant, je voulais exclure conditionnellement les répertoires .svn
et les fichiers Python compilés .pyc
. La commande robocopy suivante fait exactement ce que je veux :
robocopy source destination /XO /E /XD .svn /XF *.pyc
Y a-t-il un équivalent à Robocopy sous Linux ? J'ai jeté un coup d'œil à rsync
brièvement, mais il semblait que je devrais mettre en place un serveur rsync avant de tenter de synchroniser les dossiers.