Warum kann ich nicht mit scp kopieren, wenn ich *
Zeichen im Pfad verwende?
scp SERVERNAME:/DIR/* .
Welche Konfiguration benötigt SCP, um *
den Pfad zuzulassen ?
UPDATE: Das Problem liegt nicht auf der Serverseite. pscp versucht, SCPv1 zu verwenden, und deshalb die Fehlermeldung:
Antworten:
Sie müssen einen wörtlichen Escape-Befehl übergeben, um zu
scp
vermeiden, dass der Remote-Computer*
als Glob behandelt wird (beachten Sie, dass er in doppelten Anführungszeichen steht):quelle
touch /tmp/abcd.1234; scp 'localhost:/tmp/abcd.\*' ./
:scp: /tmp/abcd.*: No such file or directory
pscp
auf Client-Seite zu gelangen, um Remote-Globbing zu ermöglichen.Ich fand Patricks Rat richtig, obwohl Chris 'Antwort mich auf den richtigen Weg brachte. Verwenden Sie Anführungszeichen und brauchen Sie dann keinen Backslash vor dem Sternchen.
scp: /tmp/file_num*.csv: Keine solche Datei oder kein solches Verzeichnis
judgments_for_job_171642.csv 100% 32
KB 32,0 KB / s 00:00 judgments_for_job_172394.csv 100% 548 KB 182,6 KB / s 00:03
quelle
*
), und nicht, wie Sie nur auf der Fernbedienung Globbing durchführen.HINWEIS: Die unten angebotene Lösung wurde getestet und funktioniert bekanntermaßen ordnungsgemäß.
Einfache Anführungszeichen unterbrechen die Variablenerweiterung, wenn Sie einen Teil des Pfads, den Sie verschieben, als Alias definiert haben.
Hier ist ein Skript, das DOUBLE- Anführungszeichen für den Anwendungsfall des globbed-Dateinamens command-configure_ .tar.gz * verwendet, wobei ein Pfad mit einer Variablen als Alias verwendet wird:
Nach dem schließenden doppelten Anführungszeichen wird das lokale Verzeichnisziel erstellt, indem lediglich das Ausgangsverzeichnis des angegebenen Benutzers aus / etc / passwd extrahiert wird .
Der SCP - Befehl selbst wird vorangestellt
sshpass
und-o StrictHostKeyChecking=no
vollständig zu automatisieren denscp
Befehl ohne Benutzerinteraktion. Sieht kompliziert aus, ist aber besser als Hardcodierungspfade, die sich voraussichtlich von Zeit zu Zeit ändern.Wie auch immer, ein Beispiel mit doppelten Anführungszeichen, bei dem Variablen im Pfad, den Sie verschieben, erweitert werden müssen. HTH
quelle