smbclientを使用してディレクトリを再帰的にダウンロードするにはどうすればよいですか?


22

でディレクトリを取得しようとすると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などのサーバークライアントが行うのと同じタイプのセマンティクスを使用します。この場合、各getまたはputは1つのファイルをターゲットにします。ディレクトリごとに検索を実行するスクリプトを作成するか、mget / mputコマンドを使用してマスクまたはワイルドカードを指定し、複数のファイルを取得できます(私の回答を参照)。smbclientは、あなたの目的にぴったりのツールではないかもしれません。
フランクトーマス14

回答:


50

smbclientのマンページごとに、コマンドを使用mgetして、maskand recursionおよびpromptset を使用する必要があります。次にcd、再帰的に取得するディレクトリに移動します

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

または、すべて1行で、

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

サーバーへの認証が必要な場合は、-Nをドロップし、connectコマンドでパスワード設定を使用します。

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


2
また、ワンライナーで引用が少し混乱していると思います。私smbclientは「二重引用符」でディレクトリを扱うのが好きなようです。
c24w

フォルダーをコピーして置き換えただけでは機能しませんでした-末尾で終わる>
ワックスケージ

問題なくコピーしたい人は、この記事に従ってください: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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.