Как мне АБР вытащить все файлы из папки, присутствующей в SD-карте
У меня есть папка на SD-карта как: /mnt / sdcard/Folder1/Folder2/Folder3/*.jpg
имя Folder1 и Folder2 остается постоянным и внутри Folder2 у меня есть Folder3, 4, 5 и так далее.. я хочу вытащить все файлы jpeg, а не все файлы (есть еще) с помощью adb в мой текущий каталог на компьютере..
все папки разное количество из файлов jpeg и других файлов, и я попытался использовать это:
adb pull mnt/sdcard/Folder1/Folder2/Folder/*.jpg .
но это не сработало.. Так uhmm как мне adb вытащить все файлы, присутствующие в любой папке SD-карты с помощью одной команды (одна команда, потому что каждая папка имеет разное количество файлов)
7 ответов:
один файл / папка с помощью
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 '5' | 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 '5' - 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 " файлы и потяните их с вашего телефона в текущий каталог.
каталог pull доступен на новых инструментах 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)
пожалуйста, попробуйте просто дать путь, откуда вы хотите вытащить файлы Я только что получил файлы с sdcard, как
adb pull sdcard/
не дают * нравится расширять поиск или отфильтровывать. пример: adb pull sdcard/*.txt --> это недопустимо.
просто дайте adb pull sdcard/
да, просто используйте конечную косую черту, чтобы рекурсивно вытащить каталог. Работает для меня с Nexus 5 и текущей версией adb (март 2014).
на Android 6 с ADB версии 1.0.32, вы должны поставить / за папку, которую вы хотите скопировать. Например
adb pull "/sdcard/".
Если вы используете jellybean просто запустите cmd, введите adb устройства, чтобы убедиться, что ваш читаемый, введите adb pull sdcard / sdcard_ (дата или дополнительно)
в других версиях типа adb pull mnt / sdcard/ sdcard_ (дата или дополнительно)
Не забудьте сделать файл или ваш либо будет беспорядок или он не будет работать.