SDカードに存在するフォルダーのすべてのファイルをadbでプルする方法


110

SDカードに次のようなフォルダがあります。 /mnt/sdcard/Folder1/Folder2/Folder3/*.jpg

Folder1とFolder2の名前は一定のままで、Folder2内にはFolder3、4、5などがあります。adbを使用してすべてのファイルではなく、すべてのjpegファイルをプルしたいので、コンピューターの現在のディレクトリに移動します。 。

すべてのフォルダーに異なる数のjpegファイルと他のファイルがあり、これを使用してみました:

adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .

しかし、それはうまくいきませんでした...ええと、どうすればSDカードの任意のフォルダにあるすべてのファイルを単一のコマンド(各フォルダに異なる数のファイルがあるため、単一のコマンド)でプルすることができますか?


LinuxまたはWindowsを使用していますか?これは簡単なスクリプトで解決できますか?
Jared Burrows 2012

うーん私は両方にAndroid開発スタッフがインストールされています:Win7とUbuntu ..両方のソリューションがある場合、うまくいくと良いです。しかし、実際には私はUbuntu(VMとしてインストールされている)にのみ必要です..うーんうんうんとUbuntuに..
riteshtch

この質問に正しい答えをマークしてください。
Jared Burrows

回答:


143

使用する単一ファイル/フォルダーpull

adb pull "/sdcard/Folder1"

出力:

adb pull "/sdcard/Folder1"
pull: building file list...
pull: /sdcard/Folder1/image1.jpg -> ./image1.jpg
pull: /sdcard/Folder1/image2.jpg -> ./image2.jpg
pull: /sdcard/Folder1/image3.jpg -> ./image3.jpg
3 files pulled. 0 files skipped.

findfrom を使用する特定のファイル/フォルダーBusyBox

adb shell find "/sdcard/Folder1" -iname "*.jpg" | tr -d '\015' | while read line; do adb pull "$line"; done;

ここに説明があります:

adb shell find "/sdcard/Folder1" - use the find command, use the top folder
-iname "*.jpg"                   - filter the output to only *.jpg files
|                                - passes data(output) from one command to another
tr -d '\015'                     - explained here: http://stackoverflow.com/questions/9664086/bash-is-removing-commands-in-while
while read line;                 - while loop to read input of previous commands
do adb pull "$line"; done;         - pull the files into the current running directory, finish. The quotation marks around $line are required to work with filenames containing spaces.

スクリプトは最上位のフォルダーから始まり、再帰的にすべての「* .jpg」ファイルを見つけて、携帯電話から現在のディレクトリにプルします。


10
adb pull /sdcardすべてを引っ張る!
Ian Vaughan

@IanVaughanこれは私が頻繁に使用するコマンドであり、私にとっては機能しますが、SDカードからすべてを引き出してサブパスの1つを除外する方法があったらいいのに
GµårÐïåñ

Androidは持っているのtarかな?ADB上の単純なターピペでは、ファイル、メタデータを非常にきめ細かくプルすることができますが、除外されます。gzip / bzip2もそこにある場合は、圧縮されたターピペが利用可能になります:)
Mark K Cowan

以下のために、現代のバージョンadbあなただけのディレクトリを指定することもできますし、ツールがrecursivlyあなたのためにすべてを引っ張ってくる
DirkyJerky

@ mark-k-cowan adb backup with shared(sdcard)には多くのバグがあります。
Smeterlink 2017

72

ディレクトリのプルは、新しいAndroidツールで利用できます。(どのバージョンから追加されたかはわかりませんが、最新のADT 21.1で動作しています)

adb pull /sdcard/Robotium-Screenshots
pull: building file list...
pull: /sdcard/Robotium-Screenshots/090313-110415.jpg -> ./090313-110415.jpg
pull: /sdcard/Robotium-Screenshots/090313-110412.jpg -> ./090313-110412.jpg
pull: /sdcard/Robotium-Screenshots/090313-110408.jpg -> ./090313-110408.jpg
pull: /sdcard/Robotium-Screenshots/090313-110406.jpg -> ./090313-110406.jpg
pull: /sdcard/Robotium-Screenshots/090313-110404.jpg -> ./090313-110404.jpg
5 files pulled. 0 files skipped.
61 KB/s (338736 bytes in 5.409s)

1
私はこれを試しましたが、それはいくつかのディレクトリを引き出しただけです。その基準が何であったかわからない。
acjay 2014年

2
rootが所有するフォルダをプルする場合は、adb(を使用して$ adb root)rootセッションを開始します。
MasterAM 2014年

@MasterAMが言ったようにrootとしてコマンドを実行してください!問題なく動作しました!乾杯!
Migisha 2015

@acjay空のフォルダは省略されます。これは、最終的に空の再帰フォルダーにも当てはまります。例えば/sdcard/folder1/folder2になりますfolder1場合は省略されているfolder2空であり、他のファイルが下に存在しませんfolder1
MDMower、2015年

40

sdcardからファイルを取得したばかりのファイルをプルしたい場所からのパスを指定してみてください

adb pull sdcard/

*を指定して、検索範囲を広げたり、除外したりしないでください。例:adb pull sdcard / *。txt->これは無効です。

adb pull sdcard /


これははるかにクリーンなソリューションです。意味的にはより良く、ディレクトリ構造も保持します。
マイク

11
トレーリング/ 重要であることに注意してください。
adrin、2015年

adbバージョン1.0.40では、末尾にスラッシュは必要ありませんでした
Miserable Variable

6

はい、末尾のスラッシュを使用してディレクトリを再帰的にプルします。Nexus 5と最新バージョンのadb(2014年3月)で動作します。


adbバージョン1.0.40では、末尾のスラッシュは必要ありませんでした
Miserable Variable

Google Pixel XLでAndroid Qを実行しているAndroid Debug Bridgeバージョン1.0.32の末尾にスラッシュが必要でした。
ロックリー

2

ADBバージョン1.0.32がインストールされたAndroid 6では、コピーするフォルダーの後ろに/を配置する必要があります。例えばadb pull "/sdcard/".


adbバージョン1.0.40では、末尾のスラッシュは必要ありませんでした
Miserable Variable

1

jellybeanを使用してcmdを開始するだけの場合は、adb devicesと入力して読み取り可能であることを確認し、adb pull sdcard / sdcard_(date or extra)と入力します。<---このファイルは事前にadbディレクトリに作成する必要があります。利益!

他のバージョンでは、adb pull mnt / sdcard / sdcard_(日付または追加)と入力します

ファイルを作成することを忘れないでください。そうしないと、混乱が生じるか、機能しません。


1

ルート権限を取得されたデバイスからアクセスが制限されたディレクトリをプルする場合は、プルするadb root前にroot:と入力してadbを再起動する必要があります。そうしないと、次のエラーが表示されますremote object '/data/data/xxx.example.app' does not exist

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.