Jak mogę przesłać cały folder, który zawiera inne foldery, używając sftp na Linuksie?

Próbowałem put -r directory/*, który przesłał tylko pliki, a nie foldery. Dał mi błąd, nie mogę Couldn't canonicalise.

Każda pomoc będzie bardzo mile widziana.
Author: Eugene S, 2012-04-10

4 answers

Tutaj znajdziesz szczegółowe wyjaśnienie, jak skopiować katalog za pomocą scp. W Twoim przypadku byłoby to coś w stylu:

$ scp -r foo [email protected]:/some/remote/directory/bar

Spowoduje skopiowanie katalogu " foo "z lokalnego hosta do katalogu zdalnego hosta"bar". Tutaj -r jest-rekurencyjnie kopiuje całe katalogi.

Można również używać rcp z podobną składnią. Jedyną różnicą między nimi jest to, że scp używa secure shell, a {[3] } używa Remote shell.

BTW "Couldn' t błąd canonicalise", o którym wspomniałeś, pojawia się, gdy serwer sftp nie może uzyskać dostępu do pliku/katalogu wymienionego w poleceniu.

UPDATE : dla użytkowników, którzy chcą używać put w szczególności, proszę odnieść się do odpowiedzi Ben Thielker tutaj.

 26
Author: Eugene S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 12:44:03

Dla osób, które naprawdę chcą bezpośredniej odpowiedzi na to pytanie (zamiast być zmuszone do używania czegoś innego niż sftp)...

put -r local/path/to/directoryName

Przesłany katalog musi już istnieć w katalogu roboczym na serwerze, więc być może będziesz musiał go najpierw utworzyć.

mkdir directoryName
 168
Author: Ben Thielker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-24 22:46:02
sftp> mkdir source
sftp> put -r source
 Uploading source/ to /home/myself/source
 Entering source/
 source/file1
 source/file2

Tutaj wpisz opis obrazka

 2
Author: Girdhar Singh Rathore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 09:00:04

Zamiast tego użyj scp. Używa również SSH i może łatwo obsługiwać rekursję.

 -8
Author: IneQuation,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-10 08:06:36