Ich habe eine Linux-Maschine mit numerisch benannten Ordnern. Wie kann ich Bereiche dieser Ordner sicher auf einen anderen Server kopieren? Die Quellmaschine führt tcsh aus, die Zielmaschine Bash. Im Moment verwende ich aus dem Verzeichnis, das die zu kopierenden Daten enthält, den folgenden Befehl:
scp -r [2042-2046] user@target:home/user/destination_folder
Die Quellmaschine fragt nach meinem Passwort für das Ziel und scheint Dateien zu kopieren, aber auf der Zielmaschine kommt nichts an. Es gibt keine Fehler. Wenn ich jedoch den Ordnerbereich durch einen einzelnen Ordnernamen ersetze, funktioniert das Kopieren einwandfrei:
scp -r 2042 user@target:home/user/destination_folder
Dies würde jedoch bedeuten, dass ich den SCP-Befehl fünfmal wiederholen und jedes Mal mein Kennwort eingeben müsste, was insbesondere bei größeren Bereichen sehr ineffizient erscheint.
Antwort1
Die Reichweite
[2042-2046]
scheint als Datei 2 und Datei 6 interpretiert zu werden.
Der erforderliche Bereich ergibt sich aus:
204[2-6]
Antwort2
Sie könnten einen Tar-Stream über SSH verwenden:
tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"
Antwort3
Verwenden Sie eine BashKlammererweiterungAusdruck:
scp -r {2042..2046} user@target:home/user/destination_folder
Beachten Sie, dass die Klammererweiterung erfolgtVorParametererweiterung, daher können Sie Folgendes nicht schreiben:
start=2042
end=2046
scp -r {$start..$end} user@target:home/user/destination_folder
ohne eineval