GNU/Linux >> Znalost Linux >  >> Linux

Nahrávání adresářů pomocí sftp?

Nevím, proč to sftp dělá, ale můžete pouze rekurzivně kopírovat, pokud cílový adresář již existuje. Tak udělejte toto...

sftp> mkdir bin
sftp> put -r bin

OPRAVENO :Původně jsem chybně tvrdil, že OpenSSH nepodporuje put -r . Dělá to, ale dělá to velmi zvláštním způsobem. Zdá se, že očekává, že cílový adresář již existuje, se stejným názvem jako zdrojový adresář.

sftp> put -r source
 Uploading source/ to /home/myself/source
 Couldn't canonicalize: No such file or directory
 etc.
sftp> mkdir source
sftp> put -r source
 Uploading source/ to /home/myself/source
 Entering source/
 source/file1
 source/file2

Zvláštní je, že to platí i v případě, že cíl pojmenujete jinak:

sftp> put -r source dest
 Uploading source/ to /home/myself/dest
 Couldn't canonicalize: ...
sftp> mkdir dest
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Couldn't canonicalize: ...
sftp> mkdir dest/source
sftp> put -r source dest
 Uploading source/ to /home/myself/dest/source
 Entering source/
 source/file1
 source/file2

Pro lépe implementované rekurzivní put , můžete použít PuTTY psftp místo toho nástroj příkazového řádku. Je to v putty-tools balíček pod Debianem (a pravděpodobně Ubuntu).

Alternativně Filezilla udělá, co chcete, pokud chcete použít GUI.


Mohlo by vás zajímat použití rsync namísto. Příkaz k tomu by byl

 rsync --delete --rsh=ssh -av bin/ remote-ip-or-fqdn:/home/earlz/blah/bin/

Tím se zkopíruje vše v bin/ a umístěte jej na vzdálený server v /home/earlz/blah/bin/ . Další výhodou je, že nejprve zkontroluje, zda se soubor na vzdálené straně nezměnil, a pokud ne, znovu jej nepošle. Navíc můžete přidat volbu -z a ta to za vás zkomprimuje.


Linux
  1. Jak pracovat s SFTP klientem v Linuxu – 10 příkazů sftp

  2. Jak dostat Ls do seznamu adresářů s koncovým lomítkem?

  3. Jak rekurzivně odstranit adresáře pomocí zástupných znaků?

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

  2. Máte problémy s hledáním příkazů prořezáváním adresářů?

  3. Jak na to:Programování v C s adresáři na Linuxu

  1. Spravujte domovské adresáře uživatelů Linuxu pomocí systemd-homed

  2. Linux – Suid nemá žádný vliv na adresáře s Linuxem?

  3. Jak mohu provést HTTP PUT s Wget?