Die Reichweite
[2042-2046]
scheint als Datei 2 und Datei 6 interpretiert zu werden.
Das Folgende gibt den erforderlichen Bereich an:
204[2-6]
Ich habe eine Linux-Maschine mit numerischen Ordnern. Wie kann ich Bereiche dieser Ordner sicher auf einen anderen Server kopieren? Die Quellmaschine führt tcsh aus, die Ziel-Bash. Im Moment verwende ich aus dem Verzeichnis mit den Daten, die ich kopieren möchte, den folgenden Befehl:
scp -r [2042-2046] user@target:home/user/destination_folder
Die Quellmaschine fragt nach meinem Kennwort 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 Sie den Befehl scp fünfmal wiederholen und jedes Mal mein Passwort eingeben müssen. Dies ist besonders in größeren Bereichen sehr ineffizient.
Die Reichweite
[2042-2046]
scheint als Datei 2 und Datei 6 interpretiert zu werden.
Das Folgende gibt den erforderlichen Bereich an:
204[2-6]
Sie könnten einen Teerstream über SSH verwenden:
tar cvf --include='204[2-6]' - . | ssh user@target "cd /home/destination/folder; tar xvf -"
Verwenden Sie einen Bash- Brace-Erweiterungsausdruck :
scp -r user@target:home/user/destination_folder
Beachten Sie, dass die Klammererweiterung vor der Parametererweiterung geschieht. Sie können also nicht Folgendes schreiben:
start=2042 end=2046 scp -r {$start..$end} user@target:home/user/destination_folder
ohne ein eval