如何使用adb pull从Android复制所选文件

Jac*_*ble 35 android adb

我正在尝试使用adb pull命令将某些文件(jpg)复制到我的macbook.我试过"adb pull sdcard/mydir/*.jpg",但它显然没有解释通配符.我怎样才能获得仅复制的jpg文件?如果有帮助的话我已经扎根了手机.

Mic*_*ski 68

您可以将文件移动到其他文件夹,然后拉出整个文件夹.

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


Pas*_*lis 14

使用正则表达式拉出多个文件:

创建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
Run Code Online (Sandbox Code Playgroud)

运行:

使其可执行: chmod +x pullFiles.sh

运行: ./pullFiles.sh

笔记:

  • 因为文件名有空格时不起作用
  • 包括Android上的行尾(EOL)修复程序,它是一个"\ r \n"

  • 在Linux上,osx修复需要更改为tr -d"\ r \n" (2认同)