Bagaimana cara mengunduh direktori secara berulang menggunakan smbclient?

22

Ketika saya mencoba mengambil direktori get "Path To\Directory\", saya mendapatkan kesalahan berikut:

NT_STATUS_FILE_IS_A_DIRECTORY opening remote file Path To\Directory

Bagaimana cara mengunduh direktori ini secara rekursif?

(Menggunakan smbclient v3.6.23. Server adalah komputer yang menjalankan Windows 7 Home Edition.)

hololeap
sumber
smbclient menggunakan jenis semantik yang sama seperti yang dilakukan klien server seperti FTP dan HTTP, di mana masing-masing mendapatkan atau meletakkan target satu file. Anda dapat menulis skrip untuk melakukan pencarian berdasarkan direktori, atau Anda dapat menggunakan perintah mget / mput untuk menentukan mask atau wildcard untuk mengambil beberapa file, seperti yang ditunjukkan dalam jawaban saya. mungkin smbclient bukan alat yang tepat untuk tujuan Anda.
Frank Thomas

Jawaban:

50

per manual smbclient , Anda perlu menggunakan mgetperintah, dengan a maskdan recursiondan promptset. Lalu cdke direktori yang ingin Anda dapatkan secara rekursif

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

atau, semua dalam satu baris,

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

jika Anda perlu mengautentikasi ke server drop -N dan gunakan pengaturan kata sandi pada perintah koneksi.

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

Frank Thomas
sumber
2
Juga, saya pikir Anda agak bingung dengan kutipan di one-liner. Saya smbclienthanya sepertinya suka berurusan dengan direktori di "tanda kutip ganda".
c24w
Hanya menyalin dan mengganti folder tetapi tidak berhasil - diakhiri dengan trailing>
Wax Cage
Untuk orang yang benar-benar ingin menyalin tanpa masalah, ikuti artikel ini: indradjy.wordpress.com/2010/04/14/… (membantu saya)
Wax Cage
0

gunakan opsi -D untuk mengatur direktori

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

jika Anda ingin mengunduh / mendapatkan file, lakukan

smbclient -D "\Path\To\Directory" -c "get target /tmp/target"
aGuegu
sumber