Jak mogę rekurencyjnie pobrać katalog za pomocą programu smbclient?

23

Podczas próby pobrania katalogu za pomocą pojawia get "Path To\Directory\"się następujący błąd:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

Jak mogę rekurencyjnie pobrać ten katalog?

(Za pomocą programu smbclient v3.6.23. Serwer to komputer z systemem Windows 7 Home Edition.)

hololeap
źródło
smbclient używa tego samego rodzaju semantyki, co klienci serwera, tacy jak FTP i HTTP, gdzie każdy pobiera lub umieszcza cel jednego pliku. możesz pisać skrypty, aby wykonywać pobieranie według katalogu, lub możesz użyć komend mget / mput, aby określić maskę lub symbol wieloznaczny w celu pobrania wielu plików, jak pokazano w mojej odpowiedzi. być może smbclient nie jest odpowiednim narzędziem do twoich celów.
Frank Thomas

Odpowiedzi:

51

za tym smbclient podręcznika , trzeba użyć mgetpolecenia z maski recursiona promptzestawem. Następnie cddo katalogu, który chcesz uzyskać rekurencyjnie

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

lub wszystkie w jednej linii

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

jeśli musisz uwierzytelnić się na serwerze, upuść -N i użyj ustawienia Hasło w poleceniu połączenia.

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

Frank Thomas
źródło
2
Poza tym myślę, że masz trochę zdezorientowane w jednym wierszu. My smbclienttylko wydaje się podobny do czynienia z katalogów w „cudzysłów”.
c24w
Właśnie skopiowałem i zastąpiłem foldery, ale to nie zadziałało - kończy się końcowymi>
Wax Cage
Dla osób, które naprawdę chcą bez problemu kopiować, skorzystaj z tego artykułu: indradjy.wordpress.com/2010/04/14/… (pomógł mi)
Wosk Klatka
0

użyj opcji -D, aby ustawić katalog

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

jeśli chcesz pobrać / pobrać plik, zrób

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
aGuegu
źródło