Kopieren mehrerer Dateien unter Linux

Kopieren mehrerer Dateien unter Linux

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

verwandte Informationen