Як мені рекурсивно завантажувати каталог за допомогою smbclient?


23

Коли я намагаюся отримати каталог get "Path To\Directory\", я отримую таку помилку:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

Як мені рекурсивно завантажувати цей каталог?

(Використання smbclient v3.6.23. Сервер - це комп'ютер під управлінням Windows 7 Home Edition.)


smbclient використовує той же тип семантики, що і клієнтські сервери, такі як FTP та HTTP, де кожен отримує або ставить цілі по одному файлу. ви можете писати скрипти для виконання пошукових запитів за каталогом, або ви можете використовувати команди mget / mput для введення маски або символів для отримання декількох файлів, як показано в моїй відповіді. можливо, smbclient не зовсім правильний інструмент для ваших цілей.
Френк Томас

Відповіді:


51

згідно smbclient сторінки керівництва , ви повинні використовувати mgetкоманду, з maskі recursionі promptбезліччю. Потім cdдо каталогу, який ви хочете отримати рекурсивно

    smbclient '\\server\share'
    mask ""
    recurse ON
    prompt OFF
    cd 'path\to\remote\dir'
    lcd '~/path/to/download/to/'
    mget *

або, все в одному рядку,

smbclient '\\server\share' -N -c 'prompt OFF;recurse ON;cd 'path\to\directory\';lcd '~/path/to/download/to/';mget *'

якщо вам потрібно підтвердити автентифікацію на сервері drop -N і скористатися налаштуваннями пароля в команді connect.

http://technotize.blogspot.com/2011/12/copy-folder-with-ubuntu-smb-client.html


2
Крім того, я думаю, у вас є котирування трохи заплутані в одноколірці. Мені smbclientздається, що мені подобається мати справу з каталогами у "подвійних лапках".
c24w

Щойно скопіювали та замінили папки, але це не спрацювало - закінчується заднім числом>
Wax Cage

Люди дійсно хочуть без проблем копіювати наступну статтю: indradjy.wordpress.com/2010/04/14/… (допоміг мені)
Воскова клітка

0

використовуйте параметр -D для встановлення каталогу

smbclient -D "\" -c ls
smbclient -D "\Path\To\Directory" -c ls

якщо ви хочете завантажити / отримати файл, зробіть

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.