首页 文章

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

提问于
浏览
33

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

3 回答

  • 0

    对于短脚本,以下命令在我的Linux主机上运行

    #!/bin/bash
    HOST_DIR=<pull-to>
    DEVICE_DIR=/sdcard/<pull-from>
    EXTENSION="\.jpg"
    
    while read MYFILE ; do
        adb pull "$DEVICE_DIR/$MYFILE" "$HOST_DIR/$MYFILE"
    done < $(adb shell ls -1 "$DEVICE_DIR" | grep "$EXTENSION")
    

    “ls减1”让“ls”每行显示一个文件,引号允许文件名中的空格 .

  • 65

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

    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
    
  • 12

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

    创建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

    注意:

    当文件名有空格时,

    • 将不起作用

    • 包含Android上的行尾(EOL)修复程序,这是一个"\r\n"

相关问题