web-dev-qa-db-fra.com

Scp crée-t-il le dossier cible s'il n'existe pas

Je me demande si scp créera le dossier cible s'il n'existe pas sur le serveur distant. Par exemple, cela fonctionnerait-il?

scp -r /data/install/somefolder [email protected]:/data/install/somefolder

Voici le dossier /data/install/somefolder n'existe pas sur le serveur ftp, donc cette commande le créerait-elle?

N.B. J'ai lu sur rsync mais je ne sais pas vraiment comment cela fonctionne ou comment l'utiliser.

31
Benoit Paquette

Pour réaliser la tâche avec ssh et scp (au lieu de rsync):

Solution

Permet de se diviser en 2 étapes:

1. Créez un répertoire s'il manque:

ssh [email protected] "mkdir -p /data/install/somefolder"

2. Copiez-y:

scp -r /data/install/somefolder [email protected]:/data/install/somefolder

Mets les ensemble

server="[email protected]"
destiny="/data/install/somefolder"
src="/data/install/somefolder"
ssh "$server" "mkdir -p $destiny" && scp -r "$src" "$server:$destiny"
42
Thamme Gowda

Réponse courte: non.

... mais rsync le fait, c'est pourquoi j'ai alias scp pour rsync -Pravdtze ssh sur ma boîte. Oui, c'est beaucoup de commutateurs, qui en combinaison produisent mon comportement rsync préféré. Comme rsync fournit un ensemble très étendu de commutateurs et d'options, je vous suggère de faire des recherches à ce sujet pour voir ce qui correspond le mieux à vos besoins. La page de manuel est un bon point de départ, mais de nombreuses informations sont facilement disponibles. Voici une liste décente d'exemples .

Modifier: En fait, dans ce cas particulier que vous avez publié, le dossier sera créé, car c'est le dossier que vous copiez. Cependant, si vous essayez de le copier dans user@remotehost:somenonexistentfolder/somefolder, alors il échouera.

21
Jarmund