Řešení 1:
Ano, použijte -r
:
scp -rp sourcedirectory [email protected]:/path
- -r znamená rekurzivní
- -p zachovává časy úprav, časy přístupu a režimy z původního souboru.
Poznámka:Tím se vytvoří sourcedirectory
uvnitř /path
takže soubory budou ve formátu /path/sourcedirectory
Řešení 2:
I když jsou předchozí odpovědi technicky správné, měli byste také zvážit použití rsync
namísto. rsync
porovnává data na odesílající a přijímající straně pomocí diferenciálního mechanismu, takže nemusí znovu odesílat data, která již byla odeslána dříve.
Pokud se chystáte něco zkopírovat na vzdálený počítač více než jednou, použijte rsync
. Vlastně je dobré použít rsync
pokaždé, protože má více ovládacích prvků pro věci, jako je kopírování oprávnění a vlastnictví souborů a vyloučení určitých souborů nebo adresářů. Obecně:
$ rsync -av /local/dir/ server:/remote/dir/
bude synchronizovat místní adresář se vzdáleným adresářem. Pokud jej spustíte podruhé a obsah místního adresáře se nezmění, nebudou přenesena žádná data – mnohem efektivnější než spuštění scp
a pokaždé všechno kopírovat.
Také rsync
umožňuje velmi snadno se zotavit z přerušených přenosů, na rozdíl od scp
.
Konečně moderní verze rsync
ve výchozím nastavení spustit přes ssh, takže pokud scp
již funguje, rsync
by měla být v podstatě náhradní náhrada.
Řešení 3:
To je to, co -r
možnost je pro. :)
V případě potřeby se podívejte na manuálovou stránku scp.
Řešení 4:
Možnost rekurzivního kopírování '-r' (malá písmena)
scp -r
Což si pletu s běžnou možností místního rekurzivního kopírování '-R' (velká písmena)
cp -R
Řešení 5:
Nejlepší způsob je použít rsync přes SSH
rsync -a -essh /source/ [email protected]:/dest/
rsync -a -essh [email protected]:/source/ /dest/
Moje oblíbené možnosti jsou -Pazvessh --delete :
- -a :režim archivace (zahrnuje mnoho výchozích běžných možností, včetně zachování symbolických odkazů)
- -z :komprimovat
- -v :podrobný :zobrazit soubory
- -P :zobrazit průběh jako soubory hotové/zbývající soubory
- -e ssh:provede rsync v protokolu ssh
- --delete :odstranění souborů v cíli, které již nejsou ve zdroji