web-dev-qa-db-fra.com

Comment puis-je obtenir la commande scp pour écraser le dossier de destination

J'utilise la commande scp pour copier certains fichiers sur un PC distant, comme vous le faites avec scp :)

Je remarque que le comportement par défaut d'une copie scp pour les fichiers consiste à écraser tous les fichiers existants. Maintenant, je veux copier un dossier pour que je fasse essentiellement la même chose:

scp -r <source_path> user@myOtherPc:<dest_path>

Où les parties de <> sont les chemins de mes dossiers. Cependant, lorsque je lance ceci, je reçois le message "le fichier existe". Y a-t-il un moyen de contourner ceci? une sorte de force écrasante?

Merci, fourrage

34
code_fodder

Comme indiqué précédemment, scp écrase volontiers tout fichier déjà présent.

Le problème "Le fichier existe" ne peut se produire que si vous avez un autre processus (comme un processus scp simultané ou autre) en train d'écrire des dossiers et des fichiers dans la même destination. Pensez à utiliser rsync à la place.

21
nicolasochem

Comme Levans, je n'ai pas été en mesure de reproduire cela, mais avez-vous plutôt envisagé d'utiliser rsync sur ssh? Si vous copiez un grand nombre de fichiers, rsync peut être une meilleure option que scp. Il existe de nombreux bons guides en ligne, tels que:

http://troy.jdmz.net/rsync/index.htmlhttps://calomel.org/rsync_tips.html

Ce premier lien concerne les sauvegardes automatisées via cron. Par conséquent, certaines instructions (comme la création d'une clé ssh sans phrase secrète) peuvent ne pas être pertinentes pour vous.

4
Ben

Vous recevrez ce message d'erreur si le répertoire de destination contient déjà un fichier portant le même nom que le répertoire source que vous tentez de transférer. Vous ne pouvez pas avoir un fichier portant le même nom qu'un répertoire dans le même répertoire.

3
EvR2f