Question Lancer cp -r ~ / .ipython ~ / some / path / .ipython une seconde fois crée ~ / some / path / .ipython / .ipython. Comment prévenir cela?


J'utilise un script pour copier des répertoires vers un emplacement spécifié. Quand je cours cp -r ~/.ipython ~/some/path/.ipython la .ipython dir est copié comme prévu à l'emplacement spécifié. Mais quand je lance à nouveau cette commande ~/some/path/.ipython/.ipython est créé.

Je comprends que c'est récursif, mais quelle commande copie un répertoire alors que pour les appels ultérieurs de cette commande, un répertoire est créé de manière récursive dans ce même répertoire?


2
2018-05-22 18:18


origine




Réponses:


Oui, comme vous l'avez remarqué, rien n'empêche le cp commande pour créer un nouveau .ipython dir à l'intérieur de tous les autres .ipython dir.

Si vous l'utilisez dans un script que vous exécutez à plusieurs reprises, la meilleure approche pour éviter le problème est de ne pas utiliser cp mais rsync:

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

NB, le trailing / à la fin du chemin est important pour rsync. Si vous l'essayez, n'oubliez pas d'ajouter cela.

MODIFIER: La réponse de Kruug devrait également fonctionner, mais rsync donnera de meilleures performances, surtout lorsque vous le faites à plusieurs reprises.


1
2018-05-27 03:48





cp -r ~/.ipython/ ~/some/path/.ipython

ajouter la barre oblique, il copie le contenu du répertoire


2
2018-05-22 18:44



Pourriez-vous aussi faire cp -r ~/.ipython ~/some/path/? - Kruug
Pourriez-vous répondre séparément à ce Kruug? - Bentley4
@Rich Homolka: Lancer cette commande à plusieurs reprises crée toujours un nouveau .ipython dir à l'intérieur de tous les autres .ipython dir. - Bentley4
Pourquoi lancez-vous la commande à plusieurs reprises? - MattDMo
@MattDMo Parce que je l'utilise dans un script que je lance à plusieurs reprises. - Bentley4