Как сделать adb для ВСЕХ файлов папки, присутствующей на SD-карте
У меня есть папка на SD-карте:
/Шоссе/SDCard/Folder1/Folder2/folder3/*. JPG
Название Folder1 и Folder2 остается постоянным, а внутри Folder2 у меня есть Folder3, 4, 5 и т.д.
Я хочу вытащить все файлы jpeg, а не все файлы (их больше), используя adb для моего текущего каталога на компьютере.
В каждой папке есть различное число файлов jpeg и других файлов, и я попытался использовать это:
adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
Но это не сработало.
Итак, как я делаю adb, вытащить все файлы, присутствующие в любой папке SD-карты, с помощью одной команды (одна команда, потому что каждая папка имеет различное количество файлов).
Ответы
Ответ 1
Отдельный файл/папка с помощью 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
Сценарии начинаются в верхней папке и рекурсивно идут вниз и находят все файлы "*.jpg" и вытаскивают их из вашего телефона в текущий каталог.
Ответ 2
Вывод каталога доступен в новых инструментах для 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)
Ответ 3
Попробуйте просто указать путь, из которого вы хотите вытащить файлы
Я просто получил файлы с SDCard, например
adb pull sdcard/
НЕ дают *, чтобы расширить поиск или отфильтровать.
ex: adb pull sdcard/*. txt → это неверно.
просто введите adb pull sdcard/
Ответ 4
Да, просто используйте трейлинг-косую черту, чтобы рекурсивно вытащить каталог. Работает для меня с Nexus 5 и текущей версией adb (март 2014 года).
Ответ 5
На Android 6 с ADB версии 1.0.32 вы должны поместить/за папку, которую хотите скопировать. Например, adb pull "/sdcard/".
Ответ 6
Если вы используете jellybean, просто запустите cmd, введите adb-устройства, чтобы убедиться, что вы читаете, введите adb pull sdcard/sdcard_ (дата или дополнительная). < --- этот файл необходимо сделать в каталоге adb заранее. PROFIT!
В других версиях введите adb pull mnt/sdcard/sdcard_ (дата или дополнительная)
Не забудьте сделать файл, иначе у вас будет беспорядок или он не будет работать.
Ответ 7
Если вы хотите вытащить каталог с ограниченным доступом из корневого устройства, вам нужно перезапустить adb как root: введите adb root
перед нажатием. В противном случае вы получите сообщение об ошибке remote object '/data/data/xxx.example.app' does not exist