как мне получить весь каталог в sftp?

<p>я только учусь использовать sftp и хочу скопировать каталог с удаленного компьютера на мой локальный компьютер. если я попробую</p><pre><code>get [directory] </code></pre><p>это дает мне эту ошибку:</p><pre><code>cannot download non-regular file: /home/mpirocch/documents </code></pre><p><code>get -r</code> тоже не работает.</p>

<p>используйте флаг <code>-r</code> (рекурсивный):</p><pre><code>get -r * </code></pre>

<p>использование:</p><pre><code>scp -r mpirocch@my-server:/home/mpirocch/documents documents </code></pre>

<p>используйте <a href="https://lftp.yar.ru/"><code>lftp</code></a> :</p><pre><code>lftp sftp://user@host </code></pre><p>затем, внутри lftp, <code>cd</code> в каталог, который вы хотите скопировать, и используйте команду <code>mirror</code> для рекурсивной загрузки выбранного каталога, например так:</p><pre><code>mirror </code></pre><p>эта команда принимает параметры и аргументы:</p><pre>зеркало [<i>опции</i>] [<i>источник</i> [<i>цель</i>]]</pre><p>например, опция <code>-r</code> (или <code>--reverse</code>) заставит его загрузить дерево локальных каталогов в удаленный каталог:</p><pre><code>mirror -r </code></pre><p>смотрите страницу руководства <code>lftp(1)</code> <a href="https://lftp.yar.ru/lftp-man.html">на сайте проекта</a> или <a href="https://manpages.debian.org/unstable/lftp/lftp.1.en.html">на debian.org</a> для других команд и опций.</p>

<p>не используйте программу sftp напрямую, если вы можете найти что-то лучшее. для linux многие файловые менеджеры (по крайней мере, nautilus и dolphin, gnome и kde) изначально поддерживают sftp, и всегда есть sshfs. для windows есть winscp и, вероятно, <a href="http://www.google.com/search?q=windows+sftp+client">другие</a> . смысл всего этого в том, чтобы позволить вам получать доступ к файлам через sftp, как если бы они находились на обычном файловом элементе, поэтому вам не нужно заботиться о том, чтобы вы обращались к ним через sftp.</p>

<p>ну это маленькое руководство должно помочь, зеркалировать удаленный сервер в локальную папку с помощью lftp</p><p><code>lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'</code></p><ul> <li><code>sftp://</code> = использует протокол sftp</li> <li><code>mirror</code> = зеркальный режим</li> <li><code>verbose</code> = показывает загружаемые файлы</li> <li><code>use-pget-n</code> = количество сегментов, действительно полезно для ускорения больших файлов</li> <li><code>parallel</code> = загружает файлы множителей одновременно</li> </ul><p>если вы хотите загружать файлы параллельно, отключите <code>use-pget-n=8</code> с <code>--parallel=8</code></p><p>надеюсь, это поможет всем, кому нужно зеркалировать удаленную папку в локальную папку</p>

<p>попробуйте <code>mget</code> вместо <code>get</code>.</p><p>пояснение: <code>mget</code><strong> будет </strong>работать, если вы находитесь в каталоге, который хотите скопировать; если вы делаете что-то вроде этого:</p><pre><code>sftp> cd dir\_to\_get sftp> mget * </code></pre><p>он получит все файлы в этом каталоге. тем не менее, он<em> не </em>рекурсивно получит содержимое любых подкаталогов.</p>

<pre><code>get -r [directory] </code></pre><p>получает <code>[directory]</code> и все под ним, где <code>r</code> обозначает рекурсивный. я нашел это, просто набрав <code>help</code> из <code>sftp</code>.</p>

<p>как с <code>cp</code>:</p><pre><code>scp -rp user@host:/path/to/dir dir </code></pre><p>вышесказанное сохранит время и режимы исходных файлов и подкаталогов. это особенно полезно для поиска резервных копий.</p>

<p>у меня есть папка java dist на удаленном сервере, где у меня есть следующее дерево:</p><pre><code>- dist --- audio.jar --- readme --- lib ----- lib.jar </code></pre><p>цель: я хочу использовать sftp? и поместите их в/tmp/<></p><p>шаг 1. sftp remoteuser @ ip</p><p>шаг 2. cd/var/tmp</p><p>шаг 2. lmkdir/tmp/dist; lmkdir/tmp/dist/lib</p><p>шаг 3. жк/тм/дист</p><p>шаг 4. mget *</p><p>шаг 5. lcd/tmp/dist/lib</p><p>шаг 6. mget *</p><p>шаг 7. наконец у меня есть цель</p><pre><code>$ ls audio.jar lib readme.txt </code></pre>