GNU/Linux >> Znalost Linux >  >> Linux

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

Použijte tar :

tar cvzf - -T list_of_filenames | ssh hostname tar xzf -

K tomu bych chtěl použít scp, ale scp umožňuje přenos pouze jednoho souboru najednou.

Jsem si docela jistý, že to není pravda, alespoň ne pro scp příkaz poskytovaný OpenSSH, který je součástí většiny distribucí Linuxu.

Používám scp file1 file2 ... fileN [email protected]:/destination/directory/ poměrně často.

Pro transparentní kompresi má protokol SSH toto zabudované a scp můžete jej použít, pokud zadáte -C možnost na příkazovém řádku. U spousty podobných malých souborů najdete možnost tar+gz navrženou akirou, která získává lepší kompresi, protože může využít podobnosti mezi takovými soubory, kde scp komprimuje každý soubor jako samostatnou entitu. Obecně dávám přednost použití scp, protože je snazší obnovit částečný převod (nebo, i když vím, že v této situaci tazatel nemá možnost) rsync protože to je ještě snazší obnovit a sdílí výhodu komprese celého streamu možnosti tar+gz.


Ne scp -r yourdir otherhost:/otherdir práce?

Zkuste toto:

tar cfz - . | ssh otherhost "cd /mydir; tar xvzf -"

z -flag to tar provede kompresi. Nebo můžete použít -C pro ssh:

tar cf - . | ssh -C otherhost "cd /mydir; tar xvf -"

Linux
  1. Jak používat příkaz Rsync v linuxu?

  2. Jak kopírovat více souborů současně pomocí scp

  3. Jak gzipovat více souborů do jednoho souboru gz?

  1. Jak přejmenovat více souborů najednou v Linuxu

  2. Zkopírujte velké soubory na více počítačů v síti LAN

  3. Jak mohu upravit více souborů ve VIM?

  1. Jak zkopírovat soubor do více adresářů v Linuxu

  2. Jak mohu použít příkaz tar k seskupení souborů bez komprese?

  3. Spojte více souborů tar jedním příkazem