Вопрос по android – Как вытащить ВСЕ файлы из папки, представленной на SD-карте?

94

У меня есть папка на моей SD-карте как: /mnt/sdcard/Folder1/Folder2/Folder3/*.jpg

Имя Папки1 и Папки2 остается постоянным, а внутри Папки2 у меня есть Папка3, 4, 5 и так далее. Я хочу вытащить все файлы JPEG, а не все файлы (есть больше), используя ADB в мой текущий каталог на компьютере ..

Каждая папка имеетdifferent number файлов JPEG и других файлов, и я попытался с помощью этого:

<code>adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
</code>

Но это не сработало .. Итак, как мне вытащить все файлы, имеющиеся в любой папке на SD-карте, одной командой (одна команда, потому что в каждой папке разное количество файлов)

Вы в Linux или Windows? Это можно решить простым скриптом? Jared Burrows
Можете ли вы отметить правильный ответ на этот вопрос? Jared Burrows
Хмм, у меня установлен Android Development Stuff на Win7, а также на Ubuntu .. если есть решение для обоих, то хорошо и хорошо ..! Но на самом деле мне это нужно только для Ubuntu (установленной в качестве виртуальной машины) .. так что, да, я на Ubuntu .. ritesht93

Ваш Ответ

7   ответов
0

устройства, вам нужно перезапустить adb как root: typeadb root до тяги. В противном случае вы получите сообщение об ошибкremote object '/data/data/xxx.example.app' does not exist

117
Отдельный файл / папка, использующая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.
Конкретные файлы / папки, использующиеfind от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" и перетащат их с телефона в текущий каталог.

@ IanVaughan - это команда, которую я часто использую, и она работает для меня, но я бы хотел, чтобы был способ извлечь все данные с SD-карты, но исключить один из вспомогательных путей GµårÐïåñ
Интересно, есть ли у Androidtar? Простой брезент поверх ADB позволил бы очень тонко извлекать файлы, метаданные, но с исключениями. Если там также есть gzip / bzip2, то будет доступен сжатый брезент:) Mark K Cowan
adb pull /sdcard тянуть всех! Ian Vaughan
Длясовременно версииadb вы можете просто указать каталог, и инструмент рекурсивно вытянет все за вас DirkyJerky
@ mark-k-cowan Резервное копирование с помощью ADB с помощью общей (SDCARD) ошибки. Smeterlink
69

с какой версии он был добавлен, но он работает на последней версии 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)
Я попробовал это, но он вытащил только несколько каталогов. Не уверен, каковы были его критерии. acjay
@ acjay Пустые папки опущены. Это также верно для рекурсивных папок, которые в конечном итоге пусты. Например./sdcard/folder1/folder2 приведет кfolder1 опускается, еслиfolder2 пусто и нет других файлов подfolder1. MDMower
Если вы хотите вытащить папку, принадлежащую Корень, начниadb корневой сеанс (используя$ adb root). MasterAM
запустите команду от имени root, как сказал @MasterAM! работал без проблем! ура! Migisha
6

просто используйте косую черту для рекурсивного извлечения каталога. У меня работает с Nexus 5 и текущей версией adb (март 2014).

2

которую хотите скопировать. Напримadb pull "/sdcard/".

1

просто запустите cmd, наберите adb devices, чтобы убедиться, что ваш читаемый, наберите adb pull sdcard / sdcard_ (дата или больше) <--- этот файл необходимо предварительно сделать в каталоге adb. PROFIT!

В других версиях введите adb pull mnt / sdcard / sdcard_ (дата или дополнительно)

Не забудь сделать файл или у тебя будет беспорядок, или он не будет работать.

38

попробуйте просто указать путь, откуда вы хотите получить файлы. Я только что получил файлы с SDCard, как

adb pull sdcard/

НЕ дает * нравится расширять поиск или отфильтровывать. например: adb pull sdcard / *. txt -> это неверно.

Просто дайте SDB тянуть SDCard /

Это гораздо более чистое решение. Это семантически лучше и сохраняет структуру каталогов. Mike
Фантастика, работает как шарм, спасибо MosesTheTool
Обратите внимание, что в конце/ Делает матер. adrin

Похожие вопросы