scp
ist nicht sehr klug: Wenn mehrere Befehlszeilenargumente angegeben werden, die Dateien vom selben Remote-Host sind, wird für jedes Argument eine neue Verbindung geöffnet.
Sie können rsync
stattdessen verwenden scp
, es ist auf diese Weise (und auf andere Weise) intelligenter.
rsync -r -e 'ssh -P PORT' user@host:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/
Ein anderer Ansatz besteht darin , ein einzelnes Argument zu übergeben scp
, das mehrere Dateien beschreibt .
Ein anderer Ansatz besteht darin, Ihr System so einzurichten, dass Sie sich nicht ständig authentifizieren müssen. Richten Sie vorzugsweise die Schlüsselauthentifizierung ein , die in den meisten Szenarien sowohl bequemer als auch sicherer ist. Alternativ oder zusätzlich können Sie die Verbindungsfreigabe einrichten , sodass Sie sich nur einmal pro Sitzung authentifizieren müssen. Richten Sie in jedem Fall einen Alias ein, damit Sie nicht jedes Mal den Benutzernamen und den Port angeben müssen. In Ihrem ~/.ssh/config
:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host nick
HostName real-host-name.example.com
User bob
Port 1234
Führen Sie ssh -Nf nick
diese Option aus , um eine Verbindung zu öffnen. Alle nachfolgenden Verbindungen nick
werden dann auf die vorhandene Verbindung übertragen. Jetzt kannst du einfach rennen
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/