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 rsyncstattdessen 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 nickdiese Option aus , um eine Verbindung zu öffnen. Alle nachfolgenden Verbindungen nickwerden dann auf die vorhandene Verbindung übertragen. Jetzt kannst du einfach rennen
scp -r nick:/home/user/something/{file1,folder1,folder2,folder3,folder4} folder/folder2/