Как скопировать выбранные файлы с Android с помощью adb pull

Я пытаюсь использовать команду adb pull для копирования только определенных файлов (jpg) на мой macbook. Я попробовал "adb pull sdcard/mydir/*. Jpg", но он, по-видимому, не интерпретирует подстановочные знаки. Как я могу получить только файлы jpg, скопированные? Я использовал телефон, если это поможет.

Ответ 1

Вы можете переместить файлы в другую папку, а затем вытащить целую папку.

adb shell mkdir /sdcard/tmp
adb shell mv /sdcard/mydir/*.jpg /sdcard/tmp # move your jpegs to temporary dir
adb pull /sdcard/tmp/ # pull this directory (be sure to put '/' in the end)
adb shell mv /sdcard/tmp/* /sdcard/mydir/ # move them back
adb shell rmdir /sdcard/tmp # remove temporary directory

Ответ 2

Вытяните несколько файлов с помощью регулярного выражения:

Создать pullFiles.sh:

#!/bin/bash
HOST_DIR=<pull-to>
DEVICE_DIR=/sdcard/<pull-from>
EXTENSION=".jpg"

for file in $(adb shell ls $DEVICE_DIR | grep $EXTENSION'$')
do
    file=$(echo -e $file | tr -d "\r\n"); # EOL fix
    adb pull $DEVICE_DIR/$file $HOST_DIR/$file;
done

Запустите его:

Сделайте его выполнимым: chmod +x pullFiles.sh

Запустите его: ./pullFiles.sh

Примечания:

  • как есть, не будет работать, когда имена файлов имеют пробелы
  • включает исправление для конца строки (EOL) на Android, которое является "\ r\n"