Lösung 1:
Ja, verwenden Sie -r
:
scp -rp sourcedirectory [email protected]:/path
- -r bedeutet rekursiv
- -p behält Änderungszeiten, Zugriffszeiten und Modi der Originaldatei bei.
Hinweis:Dadurch wird die sourcedirectory
erstellt innerhalb von /path
somit befinden sich die Dateien in /path/sourcedirectory
Lösung 2:
Obwohl die vorherigen Antworten technisch korrekt sind, sollten Sie auch die Verwendung von rsync
in Betracht ziehen stattdessen. rsync
vergleicht die Daten auf der sendenden und empfangenden Seite mit einem Diff-Mechanismus, sodass bereits gesendete Daten nicht erneut gesendet werden müssen.
Wenn Sie etwas mehr als einmal auf einen entfernten Rechner kopieren möchten, verwenden Sie rsync
. Eigentlich ist es gut, rsync
zu verwenden jedes Mal, weil es mehr Steuerelemente für Dinge wie das Kopieren von Dateiberechtigungen und -besitz und das Ausschließen bestimmter Dateien oder Verzeichnisse hat. Allgemein:
$ rsync -av /local/dir/ server:/remote/dir/
synchronisiert ein lokales Verzeichnis mit einem entfernten Verzeichnis. Wenn Sie es ein zweites Mal ausführen und sich der Inhalt des lokalen Verzeichnisses nicht geändert hat, werden keine Daten übertragen - viel effizienter als das Ausführen von scp
und jedes Mal alles kopieren.
Auch rsync
ermöglicht Ihnen, im Gegensatz zu scp
, eine sehr einfache Wiederherstellung nach unterbrochenen Übertragungen .
Endlich moderne Versionen von rsync
läuft standardmäßig über ssh, also wenn scp
funktioniert bereits, rsync
sollte so ziemlich ein Drop-In-Ersatz sein.
Lösung 3:
Dafür steht der -r
Option ist für. :)
Weitere Informationen finden Sie bei Bedarf auf der man-Seite von scp.
Lösung 4:
Rekursive Kopieroption '-r' (Kleinbuchstaben)
scp -r
Was ich mit der regulären lokalen rekursiven Kopieroption '-R' (Großbuchstaben) verwechsele
cp -R
Lösung 5:
Am besten verwenden Sie rsync über SSH
rsync -a -essh /source/ [email protected]:/dest/
rsync -a -essh [email protected]:/source/ /dest/
Meine bevorzugten Optionen sind -Pazvessh --delete :
- -a :Archivmodus (umfasst viele standardmäßige allgemeine Optionen, einschließlich der Beibehaltung von Symlinks)
- -z :komprimieren
- -v :verbose :Dateien anzeigen
- -P :Fortschritt als erledigte Dateien/verbleibende Dateien anzeigen
- -e ssh :rsync im ssh-Protokoll ausführen
- --delete :Dateien im Ziel löschen, die nicht mehr in der Quelle sind