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

时间:2011-12-27 23:41:43

标签: android adb

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:13)

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

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

答案 2 :(得分: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")

&#34; ls减去一个&#34;让我们&#34; ls&#34;每行显示一个文件,引号允许文件名中的空格。