GNU/Linux >> Znalost Linux >  >> Linux

Může scp kopírovat adresáře rekurzivně?

Ř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

Linux
  1. Kopírování souborů a adresářů v Linuxu

  2. Zachovat datum změny v adresářích/složkách pomocí Rsync?

  3. Zkopírujte soubory pomocí SCP a Rsync

  1. Jak rekurzivně kopírovat adresáře pomocí rsync při vyloučení konkrétních souborů

  2. Jak mohu vyloučit adresáře z grep -R?

  3. Existuje způsob, jak pokračovat v procesu příkazu scp (zabezpečená kopie) v Linuxu?

  1. Synchronizace adresářů v obou směrech pomocí Rsync?

  2. Jak mohu zkopírovat více souborů přes scp v jednom příkazu?

  3. Jak mohu rekurzivně zkopírovat všechny soubory pdf v adresáři (a jeho podadresářích) do jednoho výstupního adresáře?