2 votes

En exécutant cp -r ~/.ipython ~/some/path/.ipython une deuxième fois, ~/some/path/.ipython/.ipython est créé. Comment empêcher cela ?

Je vais utiliser un script pour copier des répertoires vers un emplacement spécifié. Lorsque j'exécute cp -r ~/.ipython ~/some/path/.ipython le répertoire .ipython est copié comme prévu à l'emplacement spécifié. Mais lorsque je lance à nouveau cette commande, ~/some/path/.ipython/.ipython est créé.

Je comprends que cela est récursif, mais quelle commande copie un répertoire tout en évitant que lors d'appels ultérieurs à cette commande, un répertoire soit créé de façon récursive à l'intérieur de ce même répertoire?

2voto

Lark Points 1640
cp -r ~/.ipython/ ~/some/path/.ipython

ajoutez le slash, il copie le contenu du répertoire

1voto

xpt Points 7071

Oui, comme vous l'avez remarqué, rien n'empêche la commande cp de créer un nouveau répertoire .ipython à l'intérieur de chaque autre répertoire .ipython.

Si vous l'utilisez dans un script que vous exécutez de manière répétée, la meilleure approche pour éviter le problème n'est pas d'utiliser cp mais rsync:

rsync -vua ~/.ipython/ ~/some/path/.ipython/

NB, le / à la fin du chemin est significatif pour rsync. Si vous l'essayez, n'oubliez pas de l'ajouter.

EDIT: La réponse de Kruug devrait également fonctionner, mais rsync offrira de meilleures performances, surtout lorsque vous le faites de manière répétée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X